From 4064e28ec4af08caad2deed829731e26b6621023 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:10:59 +0100 Subject: [PATCH 01/80] splitting and merging complete.next: github action --- tilt_schema/recompile.py | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 tilt_schema/recompile.py diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py new file mode 100644 index 0000000..be5ec96 --- /dev/null +++ b/tilt_schema/recompile.py @@ -0,0 +1,59 @@ +import os +import json +import glob + +def reconstruct(): + + """ + func: Constructs the tilt-schema out of a number of constituent parts. + """ + + + properties_sections = sorted(glob.glob('properties/*.json')) + + + print(properties_sections) + + # Update the properties file with the underlying values + # Note: presupposes that all changes to the properties have been made in the properties-folder + data_props = [] + for subfile in properties_sections: + + with open(subfile, 'r') as sf: + data_props.append(json.load(sf)) + + combo_props = {} + for item in data_props: + combo_props.update(item) + + # Write the combined data to a the properties file + with open('06_properties.json', 'w') as f: + json.dump({'properties':combo_props}, f) + + meta_sections = sorted(glob.glob("*.json")) + print(meta_sections) + + + # Create an empty list to hold the data from each file + data = [] + + # Iterate over each JSON file and load its contents into the data list + for file in meta_sections: + with open(file, 'r') as f: + data.append(json.load(f)) + + # Combine all the data into a single dictionary + combined_data = {} + for item in data: + combined_data.update(item) + + + # Write the combined data to a new JSON file + with open('../combined.json', 'w') as f: + json.dump(combined_data, f) + print('successfully created new json') + + os.remove("06_properties.json") + + return + From abcc88ccdac0c5d2fc90b660e755c9e30b00a785 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:11:26 +0100 Subject: [PATCH 02/80] added separated files --- combined.json | 1 + tilt_schema/00_$schema.json | 1 + tilt_schema/01_$id.json | 1 + tilt_schema/02_type.json | 1 + tilt_schema/03_title.json | 1 + tilt_schema/04_description.json | 1 + tilt_schema/05_examples.json | 1 + tilt_schema/07_required.json | 1 + tilt_schema/properties/00_meta.json | 1 + tilt_schema/properties/01_controller.json | 1 + tilt_schema/properties/02_dataProtectionOfficer.json | 1 + tilt_schema/properties/03_dataDisclosed.json | 1 + tilt_schema/properties/04_thirdCountryTransfers.json | 1 + tilt_schema/properties/05_accessAndDataPortability.json | 1 + tilt_schema/properties/06_sources.json | 1 + tilt_schema/properties/07_rightToInformation.json | 1 + tilt_schema/properties/08_rightToRectificationOrDeletion.json | 1 + tilt_schema/properties/09_rightToDataPortability.json | 1 + tilt_schema/properties/10_rightToWithdrawConsent.json | 1 + tilt_schema/properties/11_rightToComplain.json | 1 + tilt_schema/properties/12_automatedDecisionMaking.json | 1 + tilt_schema/properties/13_changesOfPurpose.json | 1 + tilt_schema/split.ipynb | 0 23 files changed, 22 insertions(+) create mode 100644 combined.json create mode 100644 tilt_schema/00_$schema.json create mode 100644 tilt_schema/01_$id.json create mode 100644 tilt_schema/02_type.json create mode 100644 tilt_schema/03_title.json create mode 100644 tilt_schema/04_description.json create mode 100644 tilt_schema/05_examples.json create mode 100644 tilt_schema/07_required.json create mode 100644 tilt_schema/properties/00_meta.json create mode 100644 tilt_schema/properties/01_controller.json create mode 100644 tilt_schema/properties/02_dataProtectionOfficer.json create mode 100644 tilt_schema/properties/03_dataDisclosed.json create mode 100644 tilt_schema/properties/04_thirdCountryTransfers.json create mode 100644 tilt_schema/properties/05_accessAndDataPortability.json create mode 100644 tilt_schema/properties/06_sources.json create mode 100644 tilt_schema/properties/07_rightToInformation.json create mode 100644 tilt_schema/properties/08_rightToRectificationOrDeletion.json create mode 100644 tilt_schema/properties/09_rightToDataPortability.json create mode 100644 tilt_schema/properties/10_rightToWithdrawConsent.json create mode 100644 tilt_schema/properties/11_rightToComplain.json create mode 100644 tilt_schema/properties/12_automatedDecisionMaking.json create mode 100644 tilt_schema/properties/13_changesOfPurpose.json create mode 100644 tilt_schema/split.ipynb diff --git a/combined.json b/combined.json new file mode 100644 index 0000000..f4ad5f7 --- /dev/null +++ b/combined.json @@ -0,0 +1 @@ +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file diff --git a/tilt_schema/00_$schema.json b/tilt_schema/00_$schema.json new file mode 100644 index 0000000..63749aa --- /dev/null +++ b/tilt_schema/00_$schema.json @@ -0,0 +1 @@ +{"$schema": "http://json-schema.org/draft-07/schema"} \ No newline at end of file diff --git a/tilt_schema/01_$id.json b/tilt_schema/01_$id.json new file mode 100644 index 0000000..b3a1591 --- /dev/null +++ b/tilt_schema/01_$id.json @@ -0,0 +1 @@ +{"$id": "https://github.com/Transparency-Information-Language/schema"} \ No newline at end of file diff --git a/tilt_schema/02_type.json b/tilt_schema/02_type.json new file mode 100644 index 0000000..61ef6e4 --- /dev/null +++ b/tilt_schema/02_type.json @@ -0,0 +1 @@ +{"type": "object"} \ No newline at end of file diff --git a/tilt_schema/03_title.json b/tilt_schema/03_title.json new file mode 100644 index 0000000..27769bd --- /dev/null +++ b/tilt_schema/03_title.json @@ -0,0 +1 @@ +{"title": "Root schema of a Transparency Information Language"} \ No newline at end of file diff --git a/tilt_schema/04_description.json b/tilt_schema/04_description.json new file mode 100644 index 0000000..2edede7 --- /dev/null +++ b/tilt_schema/04_description.json @@ -0,0 +1 @@ +{"description": "This schema defines the Transparency Information Language"} \ No newline at end of file diff --git a/tilt_schema/05_examples.json b/tilt_schema/05_examples.json new file mode 100644 index 0000000..fe2bbbf --- /dev/null +++ b/tilt_schema/05_examples.json @@ -0,0 +1 @@ +{"examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}]} \ No newline at end of file diff --git a/tilt_schema/07_required.json b/tilt_schema/07_required.json new file mode 100644 index 0000000..0e6dc0f --- /dev/null +++ b/tilt_schema/07_required.json @@ -0,0 +1 @@ +{"required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file diff --git a/tilt_schema/properties/00_meta.json b/tilt_schema/properties/00_meta.json new file mode 100644 index 0000000..2ea6368 --- /dev/null +++ b/tilt_schema/properties/00_meta.json @@ -0,0 +1 @@ +{"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}} \ No newline at end of file diff --git a/tilt_schema/properties/01_controller.json b/tilt_schema/properties/01_controller.json new file mode 100644 index 0000000..b41b99a --- /dev/null +++ b/tilt_schema/properties/01_controller.json @@ -0,0 +1 @@ +{"controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}} \ No newline at end of file diff --git a/tilt_schema/properties/02_dataProtectionOfficer.json b/tilt_schema/properties/02_dataProtectionOfficer.json new file mode 100644 index 0000000..07a6642 --- /dev/null +++ b/tilt_schema/properties/02_dataProtectionOfficer.json @@ -0,0 +1 @@ +{"dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}} \ No newline at end of file diff --git a/tilt_schema/properties/03_dataDisclosed.json b/tilt_schema/properties/03_dataDisclosed.json new file mode 100644 index 0000000..3d8a34a --- /dev/null +++ b/tilt_schema/properties/03_dataDisclosed.json @@ -0,0 +1 @@ +{"dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}} \ No newline at end of file diff --git a/tilt_schema/properties/04_thirdCountryTransfers.json b/tilt_schema/properties/04_thirdCountryTransfers.json new file mode 100644 index 0000000..bf13519 --- /dev/null +++ b/tilt_schema/properties/04_thirdCountryTransfers.json @@ -0,0 +1 @@ +{"thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}} \ No newline at end of file diff --git a/tilt_schema/properties/05_accessAndDataPortability.json b/tilt_schema/properties/05_accessAndDataPortability.json new file mode 100644 index 0000000..98be952 --- /dev/null +++ b/tilt_schema/properties/05_accessAndDataPortability.json @@ -0,0 +1 @@ +{"accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/06_sources.json b/tilt_schema/properties/06_sources.json new file mode 100644 index 0000000..875c4bf --- /dev/null +++ b/tilt_schema/properties/06_sources.json @@ -0,0 +1 @@ +{"sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}} \ No newline at end of file diff --git a/tilt_schema/properties/07_rightToInformation.json b/tilt_schema/properties/07_rightToInformation.json new file mode 100644 index 0000000..d52a016 --- /dev/null +++ b/tilt_schema/properties/07_rightToInformation.json @@ -0,0 +1 @@ +{"rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/08_rightToRectificationOrDeletion.json b/tilt_schema/properties/08_rightToRectificationOrDeletion.json new file mode 100644 index 0000000..f3673a4 --- /dev/null +++ b/tilt_schema/properties/08_rightToRectificationOrDeletion.json @@ -0,0 +1 @@ +{"rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/09_rightToDataPortability.json b/tilt_schema/properties/09_rightToDataPortability.json new file mode 100644 index 0000000..a3f58ae --- /dev/null +++ b/tilt_schema/properties/09_rightToDataPortability.json @@ -0,0 +1 @@ +{"rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/10_rightToWithdrawConsent.json b/tilt_schema/properties/10_rightToWithdrawConsent.json new file mode 100644 index 0000000..04bd579 --- /dev/null +++ b/tilt_schema/properties/10_rightToWithdrawConsent.json @@ -0,0 +1 @@ +{"rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/11_rightToComplain.json b/tilt_schema/properties/11_rightToComplain.json new file mode 100644 index 0000000..c19ccbd --- /dev/null +++ b/tilt_schema/properties/11_rightToComplain.json @@ -0,0 +1 @@ +{"rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}} \ No newline at end of file diff --git a/tilt_schema/properties/12_automatedDecisionMaking.json b/tilt_schema/properties/12_automatedDecisionMaking.json new file mode 100644 index 0000000..83a318c --- /dev/null +++ b/tilt_schema/properties/12_automatedDecisionMaking.json @@ -0,0 +1 @@ +{"automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}} \ No newline at end of file diff --git a/tilt_schema/properties/13_changesOfPurpose.json b/tilt_schema/properties/13_changesOfPurpose.json new file mode 100644 index 0000000..3f79067 --- /dev/null +++ b/tilt_schema/properties/13_changesOfPurpose.json @@ -0,0 +1 @@ +{"changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}} \ No newline at end of file diff --git a/tilt_schema/split.ipynb b/tilt_schema/split.ipynb new file mode 100644 index 0000000..e69de29 From 51b501dfa6d8150da5701b319a3af678f799b6bc Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:17:36 +0100 Subject: [PATCH 03/80] trying github action --- .github/workflows/main.yaml | 19 +++++++++++++++++-- tilt_schema/recompile.py | 9 +++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 4fc7f16..eeaa510 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -8,7 +8,7 @@ on: pull_request: push: branches: - - v2 # !! Update this once we merge to master !! + - 15-github-action-ci-pipeline-for-merging-the-specification # !! Update this once we merge to master !! jobs: prettier: @@ -25,4 +25,19 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write **/tilt-schema.json \ No newline at end of file + prettier_options: --write **/tilt-schema.json + +combine: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + # Make sure the actual branch is checked out when running on pull requests + ref: ${{ github.head_ref }} + + - name: Combine + uses: ../tilt_schema/recompile.py + + diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index be5ec96..dfe4ce4 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -1,8 +1,7 @@ -import os -import json -import glob - def reconstruct(): + import os + import json + import glob """ func: Constructs the tilt-schema out of a number of constituent parts. @@ -57,3 +56,5 @@ def reconstruct(): return +if __name__== "__main__": + reconstruct() \ No newline at end of file From 7904f1c3127716ea86bc0ab97f0c7445f3ec9f37 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:19:08 +0100 Subject: [PATCH 04/80] insert missing tab. --- .github/workflows/main.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index eeaa510..8395ab5 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -27,17 +27,17 @@ jobs: # This part is also where you can pass other options, for example: prettier_options: --write **/tilt-schema.json -combine: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - # Make sure the actual branch is checked out when running on pull requests - ref: ${{ github.head_ref }} - - - name: Combine - uses: ../tilt_schema/recompile.py + combine: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + # Make sure the actual branch is checked out when running on pull requests + ref: ${{ github.head_ref }} + + - name: Combine + uses: ../tilt_schema/recompile.py From c2d5d961e098fda408b0d6ae97682b813f894db8 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:23:20 +0100 Subject: [PATCH 05/80] retry github action --- .github/workflows/main.yaml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 8395ab5..c646f03 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -27,17 +27,19 @@ jobs: # This part is also where you can pass other options, for example: prettier_options: --write **/tilt-schema.json - combine: + run: runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - # Make sure the actual branch is checked out when running on pull requests - ref: ${{ github.head_ref }} + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' - - name: Combine - uses: ../tilt_schema/recompile.py + - name: Run Python script + run: python ../tilt_schema/recompile.py From 954f51158a7eeb1bb29cb0fdd576f3d2f87bb287 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:25:00 +0100 Subject: [PATCH 06/80] file location --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index c646f03..d91b3c5 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -40,6 +40,6 @@ jobs: python-version: '3.9' - name: Run Python script - run: python ../tilt_schema/recompile.py + run: python tilt_schema/recompile.py From e70316f529e03b3b86a7c54e744122ca8f52ad9e Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:39:54 +0100 Subject: [PATCH 07/80] debugging --- tilt_schema/recompile.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index dfe4ce4..ddaadd2 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -7,6 +7,7 @@ def reconstruct(): func: Constructs the tilt-schema out of a number of constituent parts. """ + print(os.getcwd()) properties_sections = sorted(glob.glob('properties/*.json')) @@ -50,7 +51,7 @@ def reconstruct(): # Write the combined data to a new JSON file with open('../combined.json', 'w') as f: json.dump(combined_data, f) - print('successfully created new json') + print('successfully created new json: ../combined.json') os.remove("06_properties.json") From e551b8da0b21d73f2e27bef9796e53bb34d16bde Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:45:29 +0100 Subject: [PATCH 08/80] change location --- tilt_schema/recompile.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index ddaadd2..8f409cd 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -8,10 +8,13 @@ def reconstruct(): """ print(os.getcwd()) + + os.chdir('tilt_schema/') properties_sections = sorted(glob.glob('properties/*.json')) - + print(os.getcwd()) + print(properties_sections) # Update the properties file with the underlying values @@ -27,7 +30,7 @@ def reconstruct(): combo_props.update(item) # Write the combined data to a the properties file - with open('06_properties.json', 'w') as f: + with open('tilt_schema/06_properties.json', 'w') as f: json.dump({'properties':combo_props}, f) meta_sections = sorted(glob.glob("*.json")) From 969aad8b6572055f91d2e1f8b261407de9293b8a Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:55:47 +0100 Subject: [PATCH 09/80] debug --- tilt_schema/recompile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index 8f409cd..830de1a 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -29,8 +29,8 @@ def reconstruct(): for item in data_props: combo_props.update(item) - # Write the combined data to a the properties file - with open('tilt_schema/06_properties.json', 'w') as f: + # Write the combined data to the properties file + with open('06_properties.json', 'w') as f: json.dump({'properties':combo_props}, f) meta_sections = sorted(glob.glob("*.json")) From 9288889c84c6ca83cf894323f2dff1e7f2af1274 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:58:05 +0100 Subject: [PATCH 10/80] more debug --- tilt_schema/split.ipynb | 223 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) diff --git a/tilt_schema/split.ipynb b/tilt_schema/split.ipynb index e69de29..4a1fbd8 100644 --- a/tilt_schema/split.ipynb +++ b/tilt_schema/split.ipynb @@ -0,0 +1,223 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import os\n", + "import glob\n", + "import time\n", + "\n", + "# adopted from chatGPT\n", + "\n", + "def split_json(filepath_og):\n", + " # Open the original JSON file\n", + " with open(filepath_og, 'r') as f:\n", + " data = json.load(f)\n", + "\n", + " # Iterate over the top-level keys in the JSON object\n", + " for i, key in enumerate(data.keys()):\n", + " # Create a new dictionary containing only the data for this key\n", + " section = { key: data[key] }\n", + "\n", + " # Write the section to a new JSON file\n", + " with open(f'{i:02d}_{key}.json', 'w') as f:\n", + " json.dump(section, f)\n", + "\n", + " return data.keys()\n", + "\n", + "split_json('../tilt-schema.json')\n", + "\n", + "\n", + "# Open the original JSON file\n", + "with open('06_properties.json', 'r') as f:\n", + " data = json.load(f)\n", + "\n", + "# Iterate over the top-level keys in the JSON object\n", + "for i, key in enumerate(data['properties'].keys()):\n", + " # Create a new dictionary containing only the data for this key\n", + " section = { key: data['properties'][key] }\n", + "\n", + " # Write the section to a new JSON file\n", + " os.makedirs(os.path.dirname(f'properties/{i:02d}_{key}.json'), exist_ok=True)\n", + " with open(f'properties/{i:02d}_{key}.json', 'w') as f:\n", + " json.dump(section, f)\n", + "\n", + "os.remove(\"06_properties.json\")" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [], + "source": [ + "def reconstruct():\n", + "\n", + " \"\"\"\n", + " func: Constructs the tilt-schema out of a number of constituent parts.\n", + "\n", + "\n", + " \"\"\"\n", + "\n", + " \n", + " properties_sections = sorted(glob.glob('properties/*.json'))\n", + "\n", + " \n", + " print(properties_sections)\n", + " \n", + " # Update the properties file with the underlying values \n", + " # Note: presupposes that all changes to the properties have been made in the properties-folder\n", + " data_props = []\n", + " for subfile in properties_sections:\n", + "\n", + " with open(subfile, 'r') as sf:\n", + " data_props.append(json.load(sf))\n", + " \n", + " combo_props = {}\n", + " for item in data_props:\n", + " combo_props.update(item)\n", + " \n", + " # Write the combined data to a the properties file\n", + " with open('06_properties.json', 'w') as f:\n", + " json.dump({'properties':combo_props}, f)\n", + " \n", + " meta_sections = sorted(glob.glob(\"*.json\"))\n", + " print(meta_sections)\n", + "\n", + "\n", + " # Create an empty list to hold the data from each file\n", + " data = []\n", + "\n", + " # Iterate over each JSON file and load its contents into the data list\n", + " for file in meta_sections:\n", + " with open(file, 'r') as f:\n", + " data.append(json.load(f))\n", + "\n", + " # Combine all the data into a single dictionary\n", + " combined_data = {}\n", + " for item in data:\n", + " combined_data.update(item)\n", + "\n", + " \n", + " # Write the combined data to a new JSON file\n", + " with open('../combined.json', 'w') as f:\n", + " json.dump(combined_data, f)\n", + " print('successfully created new json')\n", + "\n", + " # Write the combined data to a new JSON file\n", + " with open('../newfilefortesting.json', 'w') as f:\n", + " json.dump(combined_data, f)\n", + " print('successfully created new json')\n", + "\n", + " os.remove(\"06_properties.json\")\n", + "\n", + " return" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['properties/00_meta.json', 'properties/01_controller.json', 'properties/02_dataProtectionOfficer.json', 'properties/03_dataDisclosed.json', 'properties/04_thirdCountryTransfers.json', 'properties/05_accessAndDataPortability.json', 'properties/06_sources.json', 'properties/07_rightToInformation.json', 'properties/08_rightToRectificationOrDeletion.json', 'properties/09_rightToDataPortability.json', 'properties/10_rightToWithdrawConsent.json', 'properties/11_rightToComplain.json', 'properties/12_automatedDecisionMaking.json', 'properties/13_changesOfPurpose.json']\n", + "['00_$schema.json', '01_$id.json', '02_type.json', '03_title.json', '04_description.json', '05_examples.json', '06_properties.json', '07_required.json']\n", + "successfully created new json\n" + ] + } + ], + "source": [ + "reconstruct()" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No differences found between the two files.\n" + ] + } + ], + "source": [ + "# Load the data from the first file\n", + "with open('../tilt-schema.json', 'r') as f:\n", + " data1 = json.load(f)\n", + "\n", + "# Load the data from the second file\n", + "with open('../combined.json', 'r') as f:\n", + " data2 = json.load(f)\n", + "\n", + "# Compare the two data sets and print out any differences\n", + "if data1 != data2:\n", + " print(\"Differences found between the two files:\")\n", + " for key in set(data1.keys()).union(set(data2.keys())):\n", + " if data1.get(key) != data2.get(key):\n", + " print(f\"Key '{key}' differs between the files:\")\n", + " print(f\"File 1: {data1.get(key)}\")\n", + " print(f\"File 2: {data2.get(key)}\")\n", + "else:\n", + " print(\"No differences found between the two files.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "63466\n", + "63466\n" + ] + } + ], + "source": [ + "print(len(str(data1)))\n", + "print(len(str(data2)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 422d8ae5219381cdb28e114cdac70702b984e1d3 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:59:43 +0100 Subject: [PATCH 11/80] db --- tilt_schema/recompile.py | 6 ++++++ tilt_schema/split.ipynb | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index 830de1a..c505ad4 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -56,6 +56,12 @@ def reconstruct(): json.dump(combined_data, f) print('successfully created new json: ../combined.json') + + # Write the combined data to a new JSON file + with open('../newfilefortesting.json', 'w') as f: + json.dump(combined_data, f) + print('successfully created new json') + os.remove("06_properties.json") return diff --git a/tilt_schema/split.ipynb b/tilt_schema/split.ipynb index 4a1fbd8..5af8e67 100644 --- a/tilt_schema/split.ipynb +++ b/tilt_schema/split.ipynb @@ -108,11 +108,6 @@ " json.dump(combined_data, f)\n", " print('successfully created new json')\n", "\n", - " # Write the combined data to a new JSON file\n", - " with open('../newfilefortesting.json', 'w') as f:\n", - " json.dump(combined_data, f)\n", - " print('successfully created new json')\n", - "\n", " os.remove(\"06_properties.json\")\n", "\n", " return" From e7c0301c50bd991aa887c0d39c5f5862b851a46d Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 16:06:01 +0100 Subject: [PATCH 12/80] one more try --- tilt_schema/recompile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index c505ad4..6af4637 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -62,7 +62,7 @@ def reconstruct(): json.dump(combined_data, f) print('successfully created new json') - os.remove("06_properties.json") + #os.remove("06_properties.json") return From 1abe4db377f793815d6f22de039c3e34983847fd Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 16:11:05 +0100 Subject: [PATCH 13/80] adding committing --- .github/workflows/main.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index d91b3c5..298c4ea 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -40,6 +40,13 @@ jobs: python-version: '3.9' - name: Run Python script - run: python tilt_schema/recompile.py + run: | + python tilt_schema/recompile.py + git config user.name github-actions + git config user.email github-actions@github.com + git add . + git commit -m "combined the file" + git push + From 57b1e5986d7045d1a7387cb1c42f3654e38aeb90 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 9 Mar 2023 15:11:24 +0000 Subject: [PATCH 14/80] combined the file --- newfilefortesting.json | 1 + tilt_schema/06_properties.json | 1 + 2 files changed, 2 insertions(+) create mode 100644 newfilefortesting.json create mode 100644 tilt_schema/06_properties.json diff --git a/newfilefortesting.json b/newfilefortesting.json new file mode 100644 index 0000000..f4ad5f7 --- /dev/null +++ b/newfilefortesting.json @@ -0,0 +1 @@ +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file diff --git a/tilt_schema/06_properties.json b/tilt_schema/06_properties.json new file mode 100644 index 0000000..3f4f1c4 --- /dev/null +++ b/tilt_schema/06_properties.json @@ -0,0 +1 @@ +{"properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}} \ No newline at end of file From 615a8a5bfbaeceed7380661e6b6f2fe29b95abcd Mon Sep 17 00:00:00 2001 From: Johannes Halkenhaeusser <46702410+Halkenhaeusser@users.noreply.github.com> Date: Thu, 9 Mar 2023 16:13:48 +0100 Subject: [PATCH 15/80] Delete newfilefortesting.json --- newfilefortesting.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 newfilefortesting.json diff --git a/newfilefortesting.json b/newfilefortesting.json deleted file mode 100644 index f4ad5f7..0000000 --- a/newfilefortesting.json +++ /dev/null @@ -1 +0,0 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From 113655a984de025e7870391cca7da061b16454f9 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 9 Mar 2023 15:14:00 +0000 Subject: [PATCH 16/80] combined the file --- newfilefortesting.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 newfilefortesting.json diff --git a/newfilefortesting.json b/newfilefortesting.json new file mode 100644 index 0000000..f4ad5f7 --- /dev/null +++ b/newfilefortesting.json @@ -0,0 +1 @@ +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From f205cb2fa8de60545a789ed0584593bb59dc98a2 Mon Sep 17 00:00:00 2001 From: Johannes Halkenhaeusser <46702410+Halkenhaeusser@users.noreply.github.com> Date: Thu, 9 Mar 2023 16:14:18 +0100 Subject: [PATCH 17/80] Delete 06_properties.json --- tilt_schema/06_properties.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tilt_schema/06_properties.json diff --git a/tilt_schema/06_properties.json b/tilt_schema/06_properties.json deleted file mode 100644 index 3f4f1c4..0000000 --- a/tilt_schema/06_properties.json +++ /dev/null @@ -1 +0,0 @@ -{"properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}} \ No newline at end of file From c2f799f5d26dac26ec61ed0a5d7ad9d3b12151cc Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 9 Mar 2023 15:14:32 +0000 Subject: [PATCH 18/80] combined the file --- tilt_schema/06_properties.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 tilt_schema/06_properties.json diff --git a/tilt_schema/06_properties.json b/tilt_schema/06_properties.json new file mode 100644 index 0000000..3f4f1c4 --- /dev/null +++ b/tilt_schema/06_properties.json @@ -0,0 +1 @@ +{"properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}} \ No newline at end of file From b80a5eea742e3a193ea10e5d1b8b4b170acc9583 Mon Sep 17 00:00:00 2001 From: Johannes Halkenhaeusser <46702410+Halkenhaeusser@users.noreply.github.com> Date: Thu, 9 Mar 2023 16:15:03 +0100 Subject: [PATCH 19/80] Create 14_test.json --- tilt_schema/properties/14_test.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 tilt_schema/properties/14_test.json diff --git a/tilt_schema/properties/14_test.json b/tilt_schema/properties/14_test.json new file mode 100644 index 0000000..eec1b26 --- /dev/null +++ b/tilt_schema/properties/14_test.json @@ -0,0 +1 @@ +{"test":"test"} From 0bcdeee328ae427936aa4cee21adbf45648440ff Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 9 Mar 2023 15:15:17 +0000 Subject: [PATCH 20/80] combined the file --- combined.json | 2 +- newfilefortesting.json | 2 +- tilt_schema/06_properties.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/combined.json b/combined.json index f4ad5f7..47198cb 100644 --- a/combined.json +++ b/combined.json @@ -1 +1 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}, "test": "test"}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file diff --git a/newfilefortesting.json b/newfilefortesting.json index f4ad5f7..47198cb 100644 --- a/newfilefortesting.json +++ b/newfilefortesting.json @@ -1 +1 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}, "test": "test"}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file diff --git a/tilt_schema/06_properties.json b/tilt_schema/06_properties.json index 3f4f1c4..a9e3b3b 100644 --- a/tilt_schema/06_properties.json +++ b/tilt_schema/06_properties.json @@ -1 +1 @@ -{"properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}} \ No newline at end of file +{"properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}, "test": "test"}} \ No newline at end of file From 5601448c24845c265b37ad1df25c9ae230d0a631 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 16:16:46 +0100 Subject: [PATCH 21/80] remove the test file and rm properties --- tilt_schema/recompile.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index 6af4637..830de1a 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -56,13 +56,7 @@ def reconstruct(): json.dump(combined_data, f) print('successfully created new json: ../combined.json') - - # Write the combined data to a new JSON file - with open('../newfilefortesting.json', 'w') as f: - json.dump(combined_data, f) - print('successfully created new json') - - #os.remove("06_properties.json") + os.remove("06_properties.json") return From 569b44b762ab17d205005affc341b72d341efdfb Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 9 Mar 2023 15:17:04 +0000 Subject: [PATCH 22/80] combined the file --- tilt_schema/06_properties.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tilt_schema/06_properties.json diff --git a/tilt_schema/06_properties.json b/tilt_schema/06_properties.json deleted file mode 100644 index a9e3b3b..0000000 --- a/tilt_schema/06_properties.json +++ /dev/null @@ -1 +0,0 @@ -{"properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}, "test": "test"}} \ No newline at end of file From 9b773c3d3ca2e938267d00463c503c55f220c93f Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 16:19:24 +0100 Subject: [PATCH 23/80] test worked. --- tilt_schema/properties/14_test.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tilt_schema/properties/14_test.json diff --git a/tilt_schema/properties/14_test.json b/tilt_schema/properties/14_test.json deleted file mode 100644 index eec1b26..0000000 --- a/tilt_schema/properties/14_test.json +++ /dev/null @@ -1 +0,0 @@ -{"test":"test"} From 40286eafe6c87ea59df22b631ee69a2ce4b69812 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 9 Mar 2023 15:19:44 +0000 Subject: [PATCH 24/80] combined the file --- combined.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/combined.json b/combined.json index 47198cb..f4ad5f7 100644 --- a/combined.json +++ b/combined.json @@ -1 +1 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}, "test": "test"}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From a54d0859f821b4eee095250a2e910b1c9f192486 Mon Sep 17 00:00:00 2001 From: Johannes Halkenhaeusser <46702410+Halkenhaeusser@users.noreply.github.com> Date: Thu, 9 Mar 2023 16:20:26 +0100 Subject: [PATCH 25/80] Delete newfilefortesting.json --- newfilefortesting.json | 1 - 1 file changed, 1 deletion(-) delete mode 100644 newfilefortesting.json diff --git a/newfilefortesting.json b/newfilefortesting.json deleted file mode 100644 index 47198cb..0000000 --- a/newfilefortesting.json +++ /dev/null @@ -1 +0,0 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}, "test": "test"}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From dddc784544af26f88197fea37ad04a26dca83103 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 16:22:12 +0100 Subject: [PATCH 26/80] allow empty commits --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 298c4ea..28f10fd 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -45,7 +45,7 @@ jobs: git config user.name github-actions git config user.email github-actions@github.com git add . - git commit -m "combined the file" + git commit --allow-empty -m "combined the file" git push From f65d9f8e4f78c44391d180e5343e13be11fd9976 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 9 Mar 2023 15:22:30 +0000 Subject: [PATCH 27/80] combined the file From 741a632bac8fe86f83d5caf061130531568e8408 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 09:34:13 +0100 Subject: [PATCH 28/80] switch order --- .github/workflows/main.yaml | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 28f10fd..78b6bc1 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -10,22 +10,7 @@ on: branches: - 15-github-action-ci-pipeline-for-merging-the-specification # !! Update this once we merge to master !! -jobs: - prettier: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - # Make sure the actual branch is checked out when running on pull requests - ref: ${{ github.head_ref }} - - - name: Prettify code - uses: creyD/prettier_action@v4.3 - with: - # This part is also where you can pass other options, for example: - prettier_options: --write **/tilt-schema.json +jobs: run: runs-on: ubuntu-latest @@ -48,5 +33,19 @@ jobs: git commit --allow-empty -m "combined the file" git push +prettier: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + # Make sure the actual branch is checked out when running on pull requests + ref: ${{ github.head_ref }} + - name: Prettify code + uses: creyD/prettier_action@v4.3 + with: + # This part is also where you can pass other options, for example: + prettier_options: --write **/{tilt-schema, combined}.json From e11afeff68812ecb3b9aa482d07da6a5f2b2e962 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 09:35:32 +0100 Subject: [PATCH 29/80] fix indent --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 78b6bc1..4d1da8c 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -33,7 +33,7 @@ jobs: git commit --allow-empty -m "combined the file" git push -prettier: + prettier: runs-on: ubuntu-latest steps: From 100ed6ffb9cafaa4e0b17c718f9bcf8e58145e72 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 08:35:54 +0000 Subject: [PATCH 30/80] combined the file From cb61a94641ef03474ca8e0ab0f307880af7c421e Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 09:52:09 +0100 Subject: [PATCH 31/80] files checking --- .github/workflows/main.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 4d1da8c..a1e2ce3 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -47,5 +47,6 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write **/{tilt-schema, combined}.json + prettier_options: --write *.json + only_changed: True From 960640218ae9460c880e5d8ce93c5383f1abed9b Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 08:52:30 +0000 Subject: [PATCH 32/80] combined the file From 6f839331553bbd5e8d42e7dd653941c116523efa Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 09:58:15 +0100 Subject: [PATCH 33/80] next test --- .github/workflows/main.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index a1e2ce3..cf6f373 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -47,6 +47,5 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write *.json - only_changed: True + prettier_options: --write [combined, tilt-schema].json From 44f0139ad50c5b7b9eb5664beee909447c8dceb3 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 08:58:36 +0000 Subject: [PATCH 34/80] combined the file From 711c9f8c7d364e5f4395d3c481a67a142f887594 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:00:25 +0100 Subject: [PATCH 35/80] slightly modified syntax --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index cf6f373..18aafeb 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -47,5 +47,5 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write [combined, tilt-schema].json + prettier_options: --write [combined.json, tilt-schema.json] From 1d29dfd9c132f4142c24a3437457272616244780 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 09:00:43 +0000 Subject: [PATCH 36/80] combined the file From 011827c36144afcf00b7afd7cdc3a2258ca24b2b Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:02:45 +0100 Subject: [PATCH 37/80] trying just with one file --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 18aafeb..bda44c3 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -47,5 +47,5 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write [combined.json, tilt-schema.json] + prettier_options: --write combined.json #, tilt-schema.json] From cabef4968b5219718670602f444de265e2941f18 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 09:03:07 +0000 Subject: [PATCH 38/80] Prettified Code! --- combined.json | 2193 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 2192 insertions(+), 1 deletion(-) diff --git a/combined.json b/combined.json index f4ad5f7..f5a99a2 100644 --- a/combined.json +++ b/combined.json @@ -1 +1,2192 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/Transparency-Information-Language/schema", + "type": "object", + "title": "Root schema of a Transparency Information Language", + "description": "This schema defines the Transparency Information Language", + "examples": [ + { + "meta": { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + }, + "controller": { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + }, + "dataProtectionOfficer": { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "dataDisclosed": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": ["E-mail address"], + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "thirdCountryTransfers": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "accessAndDataPortability": { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + }, + "sources": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "rightToInformation": { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToRectificationOrDeletion": { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToDataPortability": { + "available": false, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + }, + "rightToWithdrawConsent": { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + }, + "rightToComplain": { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + }, + "automatedDecisionMaking": { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + }, + "changesOfPurpose": [ + { + "description": "Due to techncial requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + } + ], + "properties": { + "meta": { + "$id": "#/properties/meta", + "type": "object", + "title": "Meta", + "description": "Meta information for the identification and verification of the document.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + } + ], + "required": [ + "_id", + "name", + "created", + "modified", + "version", + "language", + "status", + "url", + "_hash" + ], + "properties": { + "_id": { + "$id": "#/properties/meta/properties/_id", + "type": "string", + "title": "_id", + "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "name": { + "$id": "#/properties/meta/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the data controller.", + "examples": ["Green Company"] + }, + "created": { + "$id": "#/properties/meta/properties/created", + "type": "string", + "title": "Created", + "description": "Creation date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "modified": { + "$id": "#/properties/meta/properties/modified", + "type": "string", + "title": "Modified", + "description": "Last modified date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15: 53: 05.929588"] + }, + "version": { + "$id": "#/properties/meta/properties/version", + "type": "integer", + "title": "Version", + "description": "This number serves to version documents of a controller.", + "default": 1, + "minimum": 1, + "examples": [2] + }, + "language": { + "$id": "#/properties/meta/properties/language", + "type": "string", + "title": "Language", + "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", + "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", + "default": "en", + "examples": ["de"] + }, + "status": { + "$id": "#/properties/meta/properties/status", + "type": "string", + "title": "Status", + "description": "The status of an instance can be active or inactive depending on the policy's legal force.", + "default": "active", + "pattern": "^(active|inactive)$", + "examples": ["active", "inactive"] + }, + "url": { + "$id": "#/properties/meta/properties/url", + "type": "string", + "title": "Url", + "description": "URL to this schema.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/privacy"] + }, + "_hash": { + "$id": "#/properties/meta/properties/_hash", + "type": "string", + "title": "_hash", + "description": "The hash is based on one SHA256 calculation of the document.", + "minLength": 64, + "maxLength": 64, + "examples": [ + "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + ] + } + } + }, + "controller": { + "$id": "#/properties/controller", + "type": "object", + "title": "Controller", + "description": "The responsible controller is defined in here.", + "examples": [ + { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "sector": "J" + } + ], + "required": ["name", "address", "country", "representative"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller.", + "examples": ["Green Company AG"] + }, + "division": { + "$id": "#/properties/controller/properties/division", + "type": "string", + "title": "Division", + "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/controller/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the controller.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/controller/properties/country", + "type": "string", + "title": "Country", + "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", + "default": "DE", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "representative": { + "$id": "#/properties/controller/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative is a responsible real person that represents the controller.", + "examples": [ + { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "email"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller's representative.", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/controller/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "Email address of the controller's representative.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/controller/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the controller's representative.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["+49 151 1234 5678"] + } + } + }, + "sector": { + "$id": "#/properties/controller/properties/sector", + "type": "string", + "description": "The industry of the controller according to UN ISIC Rev. 4", + "example": "J", + "maxLength": 1, + "pattern": "[A-Z]" + } + } + }, + "dataProtectionOfficer": { + "$id": "#/properties/dataProtectionOfficer", + "type": "object", + "title": "DataProtectionOfficer", + "description": "The Data Protection Officer (DPO) of the controller.", + "examples": [ + { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "address", "country", "email"], + "properties": { + "name": { + "$id": "#/properties/dataProtectionOfficer/properties/name", + "type": "string", + "title": "Name", + "description": "The full name of the Data Protection Officer.", + "examples": ["Jane Super"] + }, + "address": { + "$id": "#/properties/dataProtectionOfficer/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the DPO.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/dataProtectionOfficer/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the Data Protection officer is located at.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/dataProtectionOfficer/properties/email", + "type": "string", + "title": "Email", + "description": "The contact email address of the Data Protection Officer.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/dataProtectionOfficer/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the Data Protection Officer (may include country prefix).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 5678"] + } + } + }, + "dataDisclosed": { + "$id": "#/properties/dataDisclosed", + "type": "array", + "title": "DataDisclosed", + "description": "A detailed explanation about which data is disclosed in the processing tasks.", + "examples": [ + [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0", + "title": "AnyOf schema", + "description": "The description of data disclosed.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "properties": { + "_id": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", + "type": "array", + "title": "Category", + "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", + "examples": ["E-mail address"], + "items": { "type": "string" } + }, + "purposes": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", + "type": "array", + "title": "Purposes", + "description": "The purpose for which a data item is processed for.", + "examples": [ + [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", + "title": "AnyOf schema for the purposes.", + "examples": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "properties": { + "purpose": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", + "type": "string", + "title": "Purpose", + "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", + "examples": ["Marketing"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "This schema refers to an exact description of the purpose the data is processed for.", + "examples": [ + "Newsletter will be sent out once a month." + ] + } + }, + "required": ["purpose", "description"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", + "type": "object" + } + }, + "legalBases": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", + "type": "array", + "title": "LegalBases", + "description": "An explanation about the legal bases for the processing of personal data disclosed.", + "examples": [ + [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", + "title": "AnyOf schema for the legal bases of the data disclosed.", + "examples": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + } + ], + "properties": { + "reference": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", + "type": "string", + "title": "Reference", + "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["GDPR-99-1-a"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the legal basis used.", + "examples": [ + "The data are processed on the basis of Art. 99 GDPR which states..." + ] + } + }, + "required": ["reference"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", + "type": "object" + } + }, + "legitimateInterests": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", + "type": "array", + "title": "LegitimateInterests", + "description": "An explanation about the legitimate interests for the processing of data disclosed.", + "examples": [ + [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", + "title": "AnyOf schema for legitimate interests.", + "examples": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "if": { + "properties": { "exists": { "const": true } }, + "required": ["exists"] + }, + "then": { "required": ["reasoning"] }, + "properties": { + "exists": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", + "type": "boolean", + "title": "Exists", + "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", + "default": false, + "examples": [true, false] + }, + "reasoning": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", + "type": "string", + "title": "Reasoning", + "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", + "examples": [ + "There is an legitimate interest based on ... and is not overwritten because ..." + ] + } + } + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", + "type": "object" + } + }, + "recipients": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", + "type": "array", + "title": "Recipients", + "description": "An explanation about the recipients of the data disclosed.", + "examples": [ + [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", + "title": "AnyOf schema if recipients", + "examples": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the third party (recipient).", + "examples": ["Yellow Company AG"] + }, + "division": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", + "type": "string", + "title": "Division", + "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", + "type": "string", + "title": "Address", + "description": "The address of the third party (recipient).", + "examples": ["Triana 123, 9999 Seville"] + }, + "country": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "representative": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative of the third party (recipient).", + "examples": [ + { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the representative of the third party (recipient).", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "The email address of the representative of the third party (recipient).", + "format": "email", + "examples": ["contact@yellowcompany.de"] + }, + "phone": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the representative of the third party (recipient).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 9876"] + } + } + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", + "type": "string", + "title": "Category", + "description": "The category of the the recipient.", + "examples": ["Marketing content provider"] + } + }, + "required": ["category"] + }, + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", + "title": "Second anyOf", + "examples": [ + { "category": "Responsible Statistical Institutes" } + ], + "properties": { + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", + "type": "string", + "title": "Category", + "description": "This category has to be given, even if the controller is not mentioned explicitly.", + "examples": ["Responsible Statistical Institutes"] + } + }, + "required": ["category"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", + "type": "object" + } + }, + "storage": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", + "type": "array", + "title": "Storage", + "description": "In this section, the duration of storage or storage criteria are given.", + "examples": [ + [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "properties": { + "temporal": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", + "type": "array", + "title": "Temporal", + "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", + "examples": [ + [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "properties": { + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "The description why the data has to be stored..", + "examples": ["Creating backups."] + }, + "ttl": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", + "type": "string", + "title": "Ttl", + "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", + "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", + "examples": [ + "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + ] + } + }, + "required": ["description", "ttl"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", + "type": "object" + } + }, + "purposeConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", + "type": "array", + "title": "PurposeConditional", + "description": "Specifies the purpose that requires data storage.", + "examples": [ + [ + "Data is stored until the end of the ordering process." + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + "Data is stored until the end of the ordering process." + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", + "type": "string" + } + }, + "legalBasisConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", + "type": "array", + "title": "LegalBasisConditional", + "description": "If the storage is required by law, the respective one has to specified in here.", + "examples": [["SGB-100-42"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", + "title": "First anyOf", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["SGB-100-42"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", + "type": "string" + } + }, + "aggregationFunction": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", + "type": "string", + "title": "AggregationFunction", + "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", + "default": "max", + "enum": ["min", "max", "sum", "avg"], + "examples": ["max"] + } + }, + "required": ["aggregationFunction"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", + "type": "object" + } + }, + "nonDisclosure": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", + "type": "object", + "title": "NonDisclosure", + "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", + "examples": [ + { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + ], + "required": [ + "legalRequirement", + "contractualRegulation", + "obligationToProvide", + "consequences" + ], + "properties": { + "legalRequirement": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", + "type": "boolean", + "title": "LegalRequirement", + "description": "Is there a legal requirement to collect these data?", + "default": false, + "examples": [false, true] + }, + "contractualRegulation": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", + "type": "boolean", + "title": "ContractualRegulation", + "description": "Is there a contractual regulation to collect these data?", + "default": false, + "examples": [false, true] + }, + "obligationToProvide": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", + "type": "boolean", + "title": "ObligationToProvide", + "description": "Is there an obligation for the data subject to provide these data?", + "default": false, + "examples": [false, true] + }, + "consequences": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", + "type": "string", + "title": "Consequences", + "description": "Description of the consequences in the case of non-disclosure.", + "examples": [ + "If the data is not disclosed, the shipment cannot be delivered." + ] + } + } + } + }, + "required": [ + "_id", + "category", + "purposes", + "legalBases", + "legitimateInterests", + "recipients", + "storage", + "nonDisclosure" + ] + } + ], + "$id": "#/properties/dataDisclosed/items", + "type": "object" + } + }, + "thirdCountryTransfers": { + "$id": "#/properties/thirdCountryTransfers", + "type": "array", + "title": "ThirdCountryTransfers", + "description": "This schema refers to the adequacy decisions of any third country transfers.", + "examples": [ + [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "properties": { + "country": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country code of the third country.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "adequacyDecision": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", + "type": "object", + "title": "AdequacyDecision", + "examples": [ + { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", + "type": "boolean", + "title": "Available", + "description": "Adequacy decision by the European commission exists?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the adequacy decision by the European commission.", + "examples": [ + "An adequacy decision was made on the 23rd April 2020 by..." + ] + } + } + }, + "appropriateGuarantees": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", + "type": "object", + "title": "AppropriateGuarantees", + "description": "Suitable guarantees according to Art. 45", + "examples": [ + { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", + "type": "boolean", + "title": "Available", + "description": "Do suitable guarantees according to Art. 45 exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", + "type": "string", + "title": "Description", + "description": "Description of suitable guarantees according to Art. 45", + "examples": [ + "Here the appropriate guarantee was formulated by..." + ] + } + } + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", + "type": "object", + "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", + "description": "Presence of enforceable rights and effective remedies", + "examples": [ + { + "available": true, + "description": "These rights are given because of..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", + "type": "boolean", + "title": "Available", + "description": "Presence of enforceable rights and effective remedies?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", + "type": "string", + "title": "Description", + "description": "Description of enforceable rights and effective remedies.", + "examples": ["These rights are given because of..."] + } + } + }, + "standardDataProtectionClause": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", + "type": "object", + "title": "StandardDataProtectionClause", + "description": "Schema on Standard Data Protection clauses.", + "examples": [ + { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", + "type": "boolean", + "title": "Available", + "description": "Does a standard data protection clause exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the standard data protection clause (may include link).", + "examples": [ + "The standard data protection clause which applies here can be found here: ..." + ] + } + } + } + } + } + ], + "$id": "#/properties/thirdCountryTransfers/items", + "type": "object" + } + }, + "accessAndDataPortability": { + "$id": "#/properties/accessAndDataPortability", + "type": "object", + "title": "AccessAndDataPortability", + "description": "Defining the right to access and data portability.", + "examples": [ + { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + } + ], + "required": ["available"], + "properties": { + "available": { + "$id": "#/properties/accessAndDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/accessAndDataPortability/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the requirements according to Art. 20 GDPR.", + "examples": [ + "Data access is possible through...", + "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." + ] + }, + "url": { + "$id": "#/properties/accessAndDataPortability/properties/url", + "type": "string", + "title": "Url", + "description": "URL to relevant resources such as access portals.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/access"] + }, + "email": { + "$id": "#/properties/accessAndDataPortability/properties/email", + "type": "string", + "title": "Email", + "description": "Contact email address", + "format": "email", + "examples": ["access@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "description": "ID evidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", + "type": "string" + } + }, + "administrativeFee": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", + "type": "object", + "title": "AdministrativeFee", + "description": "The fee that refers to several copies.", + "examples": [{ "amount": 0, "currency": "EUR" }], + "properties": { + "amount": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", + "type": "number", + "title": "Amount", + "description": "The amount of money to be paid for a copy.", + "default": 0, + "examples": [0] + }, + "currency": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", + "type": "string", + "title": "Currency", + "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", + "default": "EUR", + "minLength": 3, + "maxLength": 3, + "examples": ["EUR"] + } + }, + "required": ["amount", "currency"] + }, + "dataFormats": { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats", + "type": "array", + "title": "DataFormat", + "description": "An explanation about the data format(s) the data is provided in.", + "default": ["json"], + "examples": ["json", "xml"], + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", + "title": "First anyOf", + "examples": ["json", "xml"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", + "type": "string" + } + } + } + }, + "sources": { + "$id": "#/properties/sources", + "type": "array", + "title": "Sources", + "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", + "examples": [ + [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "properties": { + "_id": { + "$id": "#/properties/sources/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", + "examples": ["f1423cc00509931"] + }, + "dataCategory": { + "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", + "type": "string", + "title": "DataCategory", + "description": "The category the data refer to.", + "examples": ["Creditworthiness"] + }, + "sources": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources", + "type": "array", + "title": "Sources", + "description": "Specify the source(s) where the data come from.", + "examples": [ + [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ], + "properties": { + "description": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the source the data is taken from.", + "examples": [ + "This information could be retrieved from..." + ] + }, + "url": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", + "type": "string", + "title": "Url", + "description": "URL (reference) where the data is taken from.", + "format": "uri-reference", + "examples": ["https://blueCompany.org"] + }, + "publiclyAvailable": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", + "type": "boolean", + "title": "PubliclyAvailable", + "description": "Are these data publicly available?", + "default": false, + "examples": [false, true] + } + }, + "required": ["description", "url", "publiclyAvailable"] + } + ], + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", + "type": "object" + } + } + }, + "required": ["_id", "dataCategory", "sources"] + } + ], + "$id": "#/properties/sources/items", + "type": "object" + } + }, + "rightToInformation": { + "$id": "#/properties/rightToInformation", + "type": "object", + "title": "RightToInformation", + "description": "Refers to the right of information.", + "examples": [ + { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToInformation/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/rightToInformation/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the right.", + "examples": [ + "For the right to information please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToInformation/properties/url", + "type": "string", + "title": "Url", + "description": "URL to an online portal.", + "format": "uri-reference", + "examples": ["https://greencompany.org/rightToInformation"] + }, + "email": { + "$id": "#/properties/rightToInformation/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToInformation/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToRectificationOrDeletion": { + "$id": "#/properties/rightToRectificationOrDeletion", + "type": "object", + "title": "RightToRectificationOrDeletion", + "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", + "examples": [ + { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to rectification please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToDataPortability": { + "$id": "#/properties/rightToDataPortability", + "type": "object", + "title": "RightToDataPortability", + "description": "The right to data portability as stated in Art. 20 GDPR.", + "examples": [ + { + "available": true, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [false, true] + }, + "description": { + "$id": "#/properties/rightToDataPortability/properties/description", + "type": "string", + "title": "Description", + "examples": ["Data portability is only possible when..."] + }, + "url": { + "$id": "#/properties/rightToDataPortability/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToDataPortability/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy"] + } + ], + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToWithdrawConsent": { + "$id": "#/properties/rightToWithdrawConsent", + "type": "object", + "title": "RightToWithdrawConsent", + "description": "This schema refers to the right to withdraw consent.", + "examples": [ + { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToWithdrawConsent/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToWithdrawConsent/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to withdraw consent please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToWithdrawConsent/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToWithdrawConsent/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email verification"] + } + ], + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToComplain": { + "$id": "#/properties/rightToComplain", + "type": "object", + "title": "RightToComplain", + "description": "This schema refers to the right to complain.", + "examples": [ + { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description", "supervisoryAuthority"] }, + "properties": { + "available": { + "$id": "#/properties/rightToComplain/properties/available", + "type": "boolean", + "title": "Available", + "description": "Is this right available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToComplain/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to complain please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToComplain/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToComplain/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", + "type": "string" + } + }, + "supervisoryAuthority": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", + "type": "object", + "title": "SupervisoryAuthority", + "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", + "examples": [ + { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + ], + "properties": { + "name": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the supervisory authority.", + "examples": ["Commissioner for Data Protection"] + }, + "address": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", + "type": "string", + "title": "Address", + "description": "Adress of the supervisory authority.", + "examples": ["Friedrichstrasse 219, 10969 Berlin"] + }, + "country": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", + "type": "string", + "title": "Country", + "description": "Country of the supervisory authority.", + "minLength": 2, + "maxLength": 2, + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", + "type": "string", + "title": "Email", + "description": "Email adress of the supervisory authority.", + "format": "email", + "examples": ["mailbox@privacy-berlin.de"] + }, + "phone": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the supervisory authority.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 444 222 111"] + } + }, + "required": ["name"] + } + } + }, + "automatedDecisionMaking": { + "$id": "#/properties/automatedDecisionMaking", + "type": "object", + "title": "AutomatedDecisionMaking", + "description": "Automated decision making and potentially involved logic. Does include profiling.", + "examples": [ + { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + } + ], + "if": { + "properties": { "inUse": { "const": true } }, + "required": ["inUse"] + }, + "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, + "properties": { + "inUse": { + "$id": "#/properties/automatedDecisionMaking/properties/inUse", + "type": "boolean", + "title": "InUse", + "description": "Is automated decision making in use?", + "default": true, + "examples": [true, false] + }, + "logicInvolved": { + "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", + "type": "string", + "title": "LogicInvolved", + "description": "An explanation about the logic involved to automated decision making.", + "examples": ["The personal data are processed as follows..."] + }, + "scopeAndIntendedEffects": { + "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", + "type": "string", + "title": "ScopeAndIntendedEffects", + "description": "Scope and intended effects of such processing for the data subject.", + "examples": ["From processing follows..."] + } + } + }, + "changesOfPurpose": { + "$id": "#/properties/changesOfPurpose", + "type": "array", + "title": "ChangesOfPurpose", + "description": "Notification of change of purpose.", + "examples": [ + [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ], + "properties": { + "description": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the change of purpose.", + "examples": ["Due to technical requirements..."] + }, + "affectedDataCategories": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", + "type": "array", + "title": "AffectedDataCategories", + "description": "Data categories that are affected from the change of purpose.", + "examples": [["Email adress", "Credit score"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email adress", "Credit score"] + } + ], + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", + "type": "string" + } + }, + "plannedDateOfChange": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", + "type": "string", + "title": "PlannedDateOfChange", + "description": "Specify the planned date to the changes as ISO 8601 string.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-08-20"] + }, + "urlOfNewVersion": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", + "type": "string", + "title": "UrlOfNewVersion", + "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", + "examples": ["https://greencomp.de/tilt/2"] + } + } + } + ], + "$id": "#/properties/changesOfPurpose/items", + "type": "object" + } + } + }, + "required": [ + "meta", + "controller", + "dataProtectionOfficer", + "dataDisclosed", + "thirdCountryTransfers", + "accessAndDataPortability", + "sources", + "rightToInformation", + "rightToRectificationOrDeletion", + "rightToDataPortability", + "rightToWithdrawConsent", + "rightToComplain", + "automatedDecisionMaking", + "changesOfPurpose" + ] +} From d68eda0da91804a00c7799cc7e8864ba2f3f5de1 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:07:51 +0100 Subject: [PATCH 39/80] adding pull and sequential order --- .github/workflows/main.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index bda44c3..7b207c7 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -29,11 +29,13 @@ jobs: python tilt_schema/recompile.py git config user.name github-actions git config user.email github-actions@github.com + git pull git add . git commit --allow-empty -m "combined the file" git push prettier: + needs: run runs-on: ubuntu-latest steps: From 0d7a9e0d9c19fb074fba808d21c87ffed6bdf4cc Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 09:08:12 +0000 Subject: [PATCH 40/80] combined the file --- combined.json | 2193 +------------------------------------------------ 1 file changed, 1 insertion(+), 2192 deletions(-) diff --git a/combined.json b/combined.json index f5a99a2..f4ad5f7 100644 --- a/combined.json +++ b/combined.json @@ -1,2192 +1 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/Transparency-Information-Language/schema", - "type": "object", - "title": "Root schema of a Transparency Information Language", - "description": "This schema defines the Transparency Information Language", - "examples": [ - { - "meta": { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - }, - "controller": { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - }, - "dataProtectionOfficer": { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "dataDisclosed": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "thirdCountryTransfers": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "accessAndDataPortability": { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - }, - "sources": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "rightToInformation": { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToRectificationOrDeletion": { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToDataPortability": { - "available": false, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - }, - "rightToWithdrawConsent": { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - }, - "rightToComplain": { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - }, - "automatedDecisionMaking": { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - }, - "changesOfPurpose": [ - { - "description": "Due to techncial requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - } - ], - "properties": { - "meta": { - "$id": "#/properties/meta", - "type": "object", - "title": "Meta", - "description": "Meta information for the identification and verification of the document.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - } - ], - "required": [ - "_id", - "name", - "created", - "modified", - "version", - "language", - "status", - "url", - "_hash" - ], - "properties": { - "_id": { - "$id": "#/properties/meta/properties/_id", - "type": "string", - "title": "_id", - "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "name": { - "$id": "#/properties/meta/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the data controller.", - "examples": ["Green Company"] - }, - "created": { - "$id": "#/properties/meta/properties/created", - "type": "string", - "title": "Created", - "description": "Creation date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "modified": { - "$id": "#/properties/meta/properties/modified", - "type": "string", - "title": "Modified", - "description": "Last modified date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15: 53: 05.929588"] - }, - "version": { - "$id": "#/properties/meta/properties/version", - "type": "integer", - "title": "Version", - "description": "This number serves to version documents of a controller.", - "default": 1, - "minimum": 1, - "examples": [2] - }, - "language": { - "$id": "#/properties/meta/properties/language", - "type": "string", - "title": "Language", - "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", - "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", - "default": "en", - "examples": ["de"] - }, - "status": { - "$id": "#/properties/meta/properties/status", - "type": "string", - "title": "Status", - "description": "The status of an instance can be active or inactive depending on the policy's legal force.", - "default": "active", - "pattern": "^(active|inactive)$", - "examples": ["active", "inactive"] - }, - "url": { - "$id": "#/properties/meta/properties/url", - "type": "string", - "title": "Url", - "description": "URL to this schema.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/privacy"] - }, - "_hash": { - "$id": "#/properties/meta/properties/_hash", - "type": "string", - "title": "_hash", - "description": "The hash is based on one SHA256 calculation of the document.", - "minLength": 64, - "maxLength": 64, - "examples": [ - "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" - ] - } - } - }, - "controller": { - "$id": "#/properties/controller", - "type": "object", - "title": "Controller", - "description": "The responsible controller is defined in here.", - "examples": [ - { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "sector": "J" - } - ], - "required": ["name", "address", "country", "representative"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller.", - "examples": ["Green Company AG"] - }, - "division": { - "$id": "#/properties/controller/properties/division", - "type": "string", - "title": "Division", - "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/controller/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the controller.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/controller/properties/country", - "type": "string", - "title": "Country", - "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", - "default": "DE", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "representative": { - "$id": "#/properties/controller/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative is a responsible real person that represents the controller.", - "examples": [ - { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "email"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller's representative.", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/controller/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "Email address of the controller's representative.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/controller/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the controller's representative.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["+49 151 1234 5678"] - } - } - }, - "sector": { - "$id": "#/properties/controller/properties/sector", - "type": "string", - "description": "The industry of the controller according to UN ISIC Rev. 4", - "example": "J", - "maxLength": 1, - "pattern": "[A-Z]" - } - } - }, - "dataProtectionOfficer": { - "$id": "#/properties/dataProtectionOfficer", - "type": "object", - "title": "DataProtectionOfficer", - "description": "The Data Protection Officer (DPO) of the controller.", - "examples": [ - { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "address", "country", "email"], - "properties": { - "name": { - "$id": "#/properties/dataProtectionOfficer/properties/name", - "type": "string", - "title": "Name", - "description": "The full name of the Data Protection Officer.", - "examples": ["Jane Super"] - }, - "address": { - "$id": "#/properties/dataProtectionOfficer/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the DPO.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/dataProtectionOfficer/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the Data Protection officer is located at.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/dataProtectionOfficer/properties/email", - "type": "string", - "title": "Email", - "description": "The contact email address of the Data Protection Officer.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/dataProtectionOfficer/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the Data Protection Officer (may include country prefix).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 5678"] - } - } - }, - "dataDisclosed": { - "$id": "#/properties/dataDisclosed", - "type": "array", - "title": "DataDisclosed", - "description": "A detailed explanation about which data is disclosed in the processing tasks.", - "examples": [ - [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0", - "title": "AnyOf schema", - "description": "The description of data disclosed.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "properties": { - "_id": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", - "type": "array", - "title": "Category", - "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": ["E-mail address"], - "items": { "type": "string" } - }, - "purposes": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", - "type": "array", - "title": "Purposes", - "description": "The purpose for which a data item is processed for.", - "examples": [ - [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", - "title": "AnyOf schema for the purposes.", - "examples": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "properties": { - "purpose": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", - "type": "string", - "title": "Purpose", - "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": ["Marketing"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "This schema refers to an exact description of the purpose the data is processed for.", - "examples": [ - "Newsletter will be sent out once a month." - ] - } - }, - "required": ["purpose", "description"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", - "type": "object" - } - }, - "legalBases": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", - "type": "array", - "title": "LegalBases", - "description": "An explanation about the legal bases for the processing of personal data disclosed.", - "examples": [ - [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", - "title": "AnyOf schema for the legal bases of the data disclosed.", - "examples": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - } - ], - "properties": { - "reference": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", - "type": "string", - "title": "Reference", - "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["GDPR-99-1-a"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the legal basis used.", - "examples": [ - "The data are processed on the basis of Art. 99 GDPR which states..." - ] - } - }, - "required": ["reference"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", - "type": "object" - } - }, - "legitimateInterests": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", - "type": "array", - "title": "LegitimateInterests", - "description": "An explanation about the legitimate interests for the processing of data disclosed.", - "examples": [ - [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", - "title": "AnyOf schema for legitimate interests.", - "examples": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "if": { - "properties": { "exists": { "const": true } }, - "required": ["exists"] - }, - "then": { "required": ["reasoning"] }, - "properties": { - "exists": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", - "type": "boolean", - "title": "Exists", - "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", - "default": false, - "examples": [true, false] - }, - "reasoning": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", - "type": "string", - "title": "Reasoning", - "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", - "examples": [ - "There is an legitimate interest based on ... and is not overwritten because ..." - ] - } - } - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", - "type": "object" - } - }, - "recipients": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", - "type": "array", - "title": "Recipients", - "description": "An explanation about the recipients of the data disclosed.", - "examples": [ - [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", - "title": "AnyOf schema if recipients", - "examples": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the third party (recipient).", - "examples": ["Yellow Company AG"] - }, - "division": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", - "type": "string", - "title": "Division", - "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", - "type": "string", - "title": "Address", - "description": "The address of the third party (recipient).", - "examples": ["Triana 123, 9999 Seville"] - }, - "country": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "representative": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative of the third party (recipient).", - "examples": [ - { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the representative of the third party (recipient).", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "The email address of the representative of the third party (recipient).", - "format": "email", - "examples": ["contact@yellowcompany.de"] - }, - "phone": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the representative of the third party (recipient).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 9876"] - } - } - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", - "type": "string", - "title": "Category", - "description": "The category of the the recipient.", - "examples": ["Marketing content provider"] - } - }, - "required": ["category"] - }, - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", - "title": "Second anyOf", - "examples": [ - { "category": "Responsible Statistical Institutes" } - ], - "properties": { - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", - "type": "string", - "title": "Category", - "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": ["Responsible Statistical Institutes"] - } - }, - "required": ["category"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", - "type": "object" - } - }, - "storage": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", - "type": "array", - "title": "Storage", - "description": "In this section, the duration of storage or storage criteria are given.", - "examples": [ - [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "properties": { - "temporal": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", - "type": "array", - "title": "Temporal", - "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", - "examples": [ - [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "properties": { - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "The description why the data has to be stored..", - "examples": ["Creating backups."] - }, - "ttl": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", - "type": "string", - "title": "Ttl", - "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", - "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", - "examples": [ - "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - ] - } - }, - "required": ["description", "ttl"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", - "type": "object" - } - }, - "purposeConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", - "type": "array", - "title": "PurposeConditional", - "description": "Specifies the purpose that requires data storage.", - "examples": [ - [ - "Data is stored until the end of the ordering process." - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - "Data is stored until the end of the ordering process." - ] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", - "type": "string" - } - }, - "legalBasisConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", - "type": "array", - "title": "LegalBasisConditional", - "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [["SGB-100-42"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", - "title": "First anyOf", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["SGB-100-42"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", - "type": "string" - } - }, - "aggregationFunction": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", - "type": "string", - "title": "AggregationFunction", - "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", - "default": "max", - "enum": ["min", "max", "sum", "avg"], - "examples": ["max"] - } - }, - "required": ["aggregationFunction"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", - "type": "object" - } - }, - "nonDisclosure": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", - "type": "object", - "title": "NonDisclosure", - "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", - "examples": [ - { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - ], - "required": [ - "legalRequirement", - "contractualRegulation", - "obligationToProvide", - "consequences" - ], - "properties": { - "legalRequirement": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", - "type": "boolean", - "title": "LegalRequirement", - "description": "Is there a legal requirement to collect these data?", - "default": false, - "examples": [false, true] - }, - "contractualRegulation": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", - "type": "boolean", - "title": "ContractualRegulation", - "description": "Is there a contractual regulation to collect these data?", - "default": false, - "examples": [false, true] - }, - "obligationToProvide": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", - "type": "boolean", - "title": "ObligationToProvide", - "description": "Is there an obligation for the data subject to provide these data?", - "default": false, - "examples": [false, true] - }, - "consequences": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", - "type": "string", - "title": "Consequences", - "description": "Description of the consequences in the case of non-disclosure.", - "examples": [ - "If the data is not disclosed, the shipment cannot be delivered." - ] - } - } - } - }, - "required": [ - "_id", - "category", - "purposes", - "legalBases", - "legitimateInterests", - "recipients", - "storage", - "nonDisclosure" - ] - } - ], - "$id": "#/properties/dataDisclosed/items", - "type": "object" - } - }, - "thirdCountryTransfers": { - "$id": "#/properties/thirdCountryTransfers", - "type": "array", - "title": "ThirdCountryTransfers", - "description": "This schema refers to the adequacy decisions of any third country transfers.", - "examples": [ - [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "properties": { - "country": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country code of the third country.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "adequacyDecision": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", - "type": "object", - "title": "AdequacyDecision", - "examples": [ - { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", - "type": "boolean", - "title": "Available", - "description": "Adequacy decision by the European commission exists?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the adequacy decision by the European commission.", - "examples": [ - "An adequacy decision was made on the 23rd April 2020 by..." - ] - } - } - }, - "appropriateGuarantees": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", - "type": "object", - "title": "AppropriateGuarantees", - "description": "Suitable guarantees according to Art. 45", - "examples": [ - { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", - "type": "boolean", - "title": "Available", - "description": "Do suitable guarantees according to Art. 45 exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", - "type": "string", - "title": "Description", - "description": "Description of suitable guarantees according to Art. 45", - "examples": [ - "Here the appropriate guarantee was formulated by..." - ] - } - } - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", - "type": "object", - "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", - "description": "Presence of enforceable rights and effective remedies", - "examples": [ - { - "available": true, - "description": "These rights are given because of..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", - "type": "boolean", - "title": "Available", - "description": "Presence of enforceable rights and effective remedies?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", - "type": "string", - "title": "Description", - "description": "Description of enforceable rights and effective remedies.", - "examples": ["These rights are given because of..."] - } - } - }, - "standardDataProtectionClause": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", - "type": "object", - "title": "StandardDataProtectionClause", - "description": "Schema on Standard Data Protection clauses.", - "examples": [ - { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", - "type": "boolean", - "title": "Available", - "description": "Does a standard data protection clause exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the standard data protection clause (may include link).", - "examples": [ - "The standard data protection clause which applies here can be found here: ..." - ] - } - } - } - } - } - ], - "$id": "#/properties/thirdCountryTransfers/items", - "type": "object" - } - }, - "accessAndDataPortability": { - "$id": "#/properties/accessAndDataPortability", - "type": "object", - "title": "AccessAndDataPortability", - "description": "Defining the right to access and data portability.", - "examples": [ - { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - } - ], - "required": ["available"], - "properties": { - "available": { - "$id": "#/properties/accessAndDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/accessAndDataPortability/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the requirements according to Art. 20 GDPR.", - "examples": [ - "Data access is possible through...", - "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." - ] - }, - "url": { - "$id": "#/properties/accessAndDataPortability/properties/url", - "type": "string", - "title": "Url", - "description": "URL to relevant resources such as access portals.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/access"] - }, - "email": { - "$id": "#/properties/accessAndDataPortability/properties/email", - "type": "string", - "title": "Email", - "description": "Contact email address", - "format": "email", - "examples": ["access@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "description": "ID evidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", - "type": "string" - } - }, - "administrativeFee": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", - "type": "object", - "title": "AdministrativeFee", - "description": "The fee that refers to several copies.", - "examples": [{ "amount": 0, "currency": "EUR" }], - "properties": { - "amount": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", - "type": "number", - "title": "Amount", - "description": "The amount of money to be paid for a copy.", - "default": 0, - "examples": [0] - }, - "currency": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", - "type": "string", - "title": "Currency", - "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", - "default": "EUR", - "minLength": 3, - "maxLength": 3, - "examples": ["EUR"] - } - }, - "required": ["amount", "currency"] - }, - "dataFormats": { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats", - "type": "array", - "title": "DataFormat", - "description": "An explanation about the data format(s) the data is provided in.", - "default": ["json"], - "examples": ["json", "xml"], - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", - "title": "First anyOf", - "examples": ["json", "xml"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", - "type": "string" - } - } - } - }, - "sources": { - "$id": "#/properties/sources", - "type": "array", - "title": "Sources", - "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", - "examples": [ - [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "properties": { - "_id": { - "$id": "#/properties/sources/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": ["f1423cc00509931"] - }, - "dataCategory": { - "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", - "type": "string", - "title": "DataCategory", - "description": "The category the data refer to.", - "examples": ["Creditworthiness"] - }, - "sources": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources", - "type": "array", - "title": "Sources", - "description": "Specify the source(s) where the data come from.", - "examples": [ - [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ], - "properties": { - "description": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the source the data is taken from.", - "examples": [ - "This information could be retrieved from..." - ] - }, - "url": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", - "type": "string", - "title": "Url", - "description": "URL (reference) where the data is taken from.", - "format": "uri-reference", - "examples": ["https://blueCompany.org"] - }, - "publiclyAvailable": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", - "type": "boolean", - "title": "PubliclyAvailable", - "description": "Are these data publicly available?", - "default": false, - "examples": [false, true] - } - }, - "required": ["description", "url", "publiclyAvailable"] - } - ], - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", - "type": "object" - } - } - }, - "required": ["_id", "dataCategory", "sources"] - } - ], - "$id": "#/properties/sources/items", - "type": "object" - } - }, - "rightToInformation": { - "$id": "#/properties/rightToInformation", - "type": "object", - "title": "RightToInformation", - "description": "Refers to the right of information.", - "examples": [ - { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToInformation/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/rightToInformation/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the right.", - "examples": [ - "For the right to information please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToInformation/properties/url", - "type": "string", - "title": "Url", - "description": "URL to an online portal.", - "format": "uri-reference", - "examples": ["https://greencompany.org/rightToInformation"] - }, - "email": { - "$id": "#/properties/rightToInformation/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToInformation/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToRectificationOrDeletion": { - "$id": "#/properties/rightToRectificationOrDeletion", - "type": "object", - "title": "RightToRectificationOrDeletion", - "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", - "examples": [ - { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to rectification please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToDataPortability": { - "$id": "#/properties/rightToDataPortability", - "type": "object", - "title": "RightToDataPortability", - "description": "The right to data portability as stated in Art. 20 GDPR.", - "examples": [ - { - "available": true, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [false, true] - }, - "description": { - "$id": "#/properties/rightToDataPortability/properties/description", - "type": "string", - "title": "Description", - "examples": ["Data portability is only possible when..."] - }, - "url": { - "$id": "#/properties/rightToDataPortability/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToDataPortability/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy"] - } - ], - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToWithdrawConsent": { - "$id": "#/properties/rightToWithdrawConsent", - "type": "object", - "title": "RightToWithdrawConsent", - "description": "This schema refers to the right to withdraw consent.", - "examples": [ - { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToWithdrawConsent/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToWithdrawConsent/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to withdraw consent please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToWithdrawConsent/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToWithdrawConsent/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email verification"] - } - ], - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToComplain": { - "$id": "#/properties/rightToComplain", - "type": "object", - "title": "RightToComplain", - "description": "This schema refers to the right to complain.", - "examples": [ - { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description", "supervisoryAuthority"] }, - "properties": { - "available": { - "$id": "#/properties/rightToComplain/properties/available", - "type": "boolean", - "title": "Available", - "description": "Is this right available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToComplain/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to complain please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToComplain/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToComplain/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", - "type": "string" - } - }, - "supervisoryAuthority": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", - "type": "object", - "title": "SupervisoryAuthority", - "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", - "examples": [ - { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - ], - "properties": { - "name": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the supervisory authority.", - "examples": ["Commissioner for Data Protection"] - }, - "address": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", - "type": "string", - "title": "Address", - "description": "Adress of the supervisory authority.", - "examples": ["Friedrichstrasse 219, 10969 Berlin"] - }, - "country": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", - "type": "string", - "title": "Country", - "description": "Country of the supervisory authority.", - "minLength": 2, - "maxLength": 2, - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", - "type": "string", - "title": "Email", - "description": "Email adress of the supervisory authority.", - "format": "email", - "examples": ["mailbox@privacy-berlin.de"] - }, - "phone": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the supervisory authority.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 444 222 111"] - } - }, - "required": ["name"] - } - } - }, - "automatedDecisionMaking": { - "$id": "#/properties/automatedDecisionMaking", - "type": "object", - "title": "AutomatedDecisionMaking", - "description": "Automated decision making and potentially involved logic. Does include profiling.", - "examples": [ - { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - } - ], - "if": { - "properties": { "inUse": { "const": true } }, - "required": ["inUse"] - }, - "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, - "properties": { - "inUse": { - "$id": "#/properties/automatedDecisionMaking/properties/inUse", - "type": "boolean", - "title": "InUse", - "description": "Is automated decision making in use?", - "default": true, - "examples": [true, false] - }, - "logicInvolved": { - "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", - "type": "string", - "title": "LogicInvolved", - "description": "An explanation about the logic involved to automated decision making.", - "examples": ["The personal data are processed as follows..."] - }, - "scopeAndIntendedEffects": { - "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", - "type": "string", - "title": "ScopeAndIntendedEffects", - "description": "Scope and intended effects of such processing for the data subject.", - "examples": ["From processing follows..."] - } - } - }, - "changesOfPurpose": { - "$id": "#/properties/changesOfPurpose", - "type": "array", - "title": "ChangesOfPurpose", - "description": "Notification of change of purpose.", - "examples": [ - [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ], - "properties": { - "description": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the change of purpose.", - "examples": ["Due to technical requirements..."] - }, - "affectedDataCategories": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", - "type": "array", - "title": "AffectedDataCategories", - "description": "Data categories that are affected from the change of purpose.", - "examples": [["Email adress", "Credit score"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email adress", "Credit score"] - } - ], - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", - "type": "string" - } - }, - "plannedDateOfChange": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", - "type": "string", - "title": "PlannedDateOfChange", - "description": "Specify the planned date to the changes as ISO 8601 string.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-08-20"] - }, - "urlOfNewVersion": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", - "type": "string", - "title": "UrlOfNewVersion", - "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": ["https://greencomp.de/tilt/2"] - } - } - } - ], - "$id": "#/properties/changesOfPurpose/items", - "type": "object" - } - } - }, - "required": [ - "meta", - "controller", - "dataProtectionOfficer", - "dataDisclosed", - "thirdCountryTransfers", - "accessAndDataPortability", - "sources", - "rightToInformation", - "rightToRectificationOrDeletion", - "rightToDataPortability", - "rightToWithdrawConsent", - "rightToComplain", - "automatedDecisionMaking", - "changesOfPurpose" - ] -} +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From c63bde52c2d65b9eab595c3b522bf0cd54e5c12c Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:23:23 +0100 Subject: [PATCH 41/80] add second prettier option. --- .github/workflows/main.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 7b207c7..e57241c 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -50,4 +50,5 @@ jobs: with: # This part is also where you can pass other options, for example: prettier_options: --write combined.json #, tilt-schema.json] + prettier_options: --write tilt-schema.json From 350f7e768d51ac0b34afb5c92f4b2c1b441fff65 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:25:58 +0100 Subject: [PATCH 42/80] debug --- .github/workflows/main.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index e57241c..ff6586a 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -49,6 +49,5 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write combined.json #, tilt-schema.json] - prettier_options: --write tilt-schema.json + prettier_options: --write ['tilt-schema','combined'].json #, tilt-schema.json] From 1008dc9e1322e33e78f5089a625e65b0520c642d Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 09:26:16 +0000 Subject: [PATCH 43/80] combined the file From f15e5fd206de967a68a61c89fb836c462800f1a0 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:32:38 +0100 Subject: [PATCH 44/80] test as list --- .github/workflows/main.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index ff6586a..b58a24b 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -49,5 +49,7 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write ['tilt-schema','combined'].json #, tilt-schema.json] + prettier_options: + - --write combined.json #, + - --write tilt-schema.json From e88a3732b830335ec06e27692ce1298958c9891f Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:46:53 +0100 Subject: [PATCH 45/80] next try --- .github/workflows/main.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index b58a24b..3e75b20 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -49,7 +49,6 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: - - --write combined.json #, - - --write tilt-schema.json + prettier_options: --write combined.json tilt-schema.json#, + From cf9d9ce717b50a4cf937562da5079b88cd45084d Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 09:47:25 +0000 Subject: [PATCH 46/80] combined the file From fa39d884110ab9cf22b949342ae2d3245fb22995 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:49:21 +0100 Subject: [PATCH 47/80] typo --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 3e75b20..6361c4a 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -49,6 +49,6 @@ jobs: uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write combined.json tilt-schema.json#, + prettier_options: --write combined.json tilt-schema.json From ebd6a71b5fb2636ef5e059e9f96a8c37385ee2c2 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 09:49:41 +0000 Subject: [PATCH 48/80] combined the file From 4476b4334c787899acbd3735cb4262c7971a26a5 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 10:56:28 +0100 Subject: [PATCH 49/80] debug checkout --- .github/workflows/main.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 6361c4a..98957a0 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -44,6 +44,7 @@ jobs: with: # Make sure the actual branch is checked out when running on pull requests ref: ${{ github.head_ref }} + repository: ${{ github.repository }} - name: Prettify code uses: creyD/prettier_action@v4.3 From 43a7dac3fcad18740c52a077843479d9aec41dc8 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 09:56:53 +0000 Subject: [PATCH 50/80] combined the file From c89586787e7e306eebcef83f1930958f9cb7072c Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 13:19:28 +0100 Subject: [PATCH 51/80] try next suggestion --- .github/workflows/main.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 98957a0..e88fb2a 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -51,5 +51,16 @@ jobs: with: # This part is also where you can pass other options, for example: prettier_options: --write combined.json tilt-schema.json + + - name: Pull changes from remote repository + run: git pull + + - name: Commit and push changes + run: | + git config user.name github-actions + git config user.email github-actions@github.com + git add . + git commit --allow-empty -m "Prettified Code!" + git push From b0c2af3ee6512a4f5d555a5bb6632accc0fa4967 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 12:19:47 +0000 Subject: [PATCH 52/80] combined the file From 3884b669e62359bfa5f75715e071dd16410661b8 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 13:21:43 +0100 Subject: [PATCH 53/80] adding git pull before --- .github/workflows/main.yaml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index e88fb2a..638c8c8 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -46,21 +46,12 @@ jobs: ref: ${{ github.head_ref }} repository: ${{ github.repository }} + - name: Pull changes from remote repository + run: git pull + - name: Prettify code uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: prettier_options: --write combined.json tilt-schema.json - - - name: Pull changes from remote repository - run: git pull - - - name: Commit and push changes - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git add . - git commit --allow-empty -m "Prettified Code!" - git push - From 1ad1d78b988953c293ddf1cf9cf8071d2a6ba307 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 12:22:03 +0000 Subject: [PATCH 54/80] combined the file From 6fd0bf89a1447c75d60bf9f9ab6b84aeb24c7119 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 12:22:23 +0000 Subject: [PATCH 55/80] Prettified Code! --- combined.json | 2193 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 2192 insertions(+), 1 deletion(-) diff --git a/combined.json b/combined.json index f4ad5f7..f5a99a2 100644 --- a/combined.json +++ b/combined.json @@ -1 +1,2192 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/Transparency-Information-Language/schema", + "type": "object", + "title": "Root schema of a Transparency Information Language", + "description": "This schema defines the Transparency Information Language", + "examples": [ + { + "meta": { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + }, + "controller": { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + }, + "dataProtectionOfficer": { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "dataDisclosed": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": ["E-mail address"], + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "thirdCountryTransfers": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "accessAndDataPortability": { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + }, + "sources": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "rightToInformation": { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToRectificationOrDeletion": { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToDataPortability": { + "available": false, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + }, + "rightToWithdrawConsent": { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + }, + "rightToComplain": { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + }, + "automatedDecisionMaking": { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + }, + "changesOfPurpose": [ + { + "description": "Due to techncial requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + } + ], + "properties": { + "meta": { + "$id": "#/properties/meta", + "type": "object", + "title": "Meta", + "description": "Meta information for the identification and verification of the document.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + } + ], + "required": [ + "_id", + "name", + "created", + "modified", + "version", + "language", + "status", + "url", + "_hash" + ], + "properties": { + "_id": { + "$id": "#/properties/meta/properties/_id", + "type": "string", + "title": "_id", + "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "name": { + "$id": "#/properties/meta/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the data controller.", + "examples": ["Green Company"] + }, + "created": { + "$id": "#/properties/meta/properties/created", + "type": "string", + "title": "Created", + "description": "Creation date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "modified": { + "$id": "#/properties/meta/properties/modified", + "type": "string", + "title": "Modified", + "description": "Last modified date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15: 53: 05.929588"] + }, + "version": { + "$id": "#/properties/meta/properties/version", + "type": "integer", + "title": "Version", + "description": "This number serves to version documents of a controller.", + "default": 1, + "minimum": 1, + "examples": [2] + }, + "language": { + "$id": "#/properties/meta/properties/language", + "type": "string", + "title": "Language", + "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", + "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", + "default": "en", + "examples": ["de"] + }, + "status": { + "$id": "#/properties/meta/properties/status", + "type": "string", + "title": "Status", + "description": "The status of an instance can be active or inactive depending on the policy's legal force.", + "default": "active", + "pattern": "^(active|inactive)$", + "examples": ["active", "inactive"] + }, + "url": { + "$id": "#/properties/meta/properties/url", + "type": "string", + "title": "Url", + "description": "URL to this schema.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/privacy"] + }, + "_hash": { + "$id": "#/properties/meta/properties/_hash", + "type": "string", + "title": "_hash", + "description": "The hash is based on one SHA256 calculation of the document.", + "minLength": 64, + "maxLength": 64, + "examples": [ + "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + ] + } + } + }, + "controller": { + "$id": "#/properties/controller", + "type": "object", + "title": "Controller", + "description": "The responsible controller is defined in here.", + "examples": [ + { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "sector": "J" + } + ], + "required": ["name", "address", "country", "representative"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller.", + "examples": ["Green Company AG"] + }, + "division": { + "$id": "#/properties/controller/properties/division", + "type": "string", + "title": "Division", + "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/controller/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the controller.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/controller/properties/country", + "type": "string", + "title": "Country", + "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", + "default": "DE", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "representative": { + "$id": "#/properties/controller/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative is a responsible real person that represents the controller.", + "examples": [ + { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "email"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller's representative.", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/controller/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "Email address of the controller's representative.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/controller/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the controller's representative.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["+49 151 1234 5678"] + } + } + }, + "sector": { + "$id": "#/properties/controller/properties/sector", + "type": "string", + "description": "The industry of the controller according to UN ISIC Rev. 4", + "example": "J", + "maxLength": 1, + "pattern": "[A-Z]" + } + } + }, + "dataProtectionOfficer": { + "$id": "#/properties/dataProtectionOfficer", + "type": "object", + "title": "DataProtectionOfficer", + "description": "The Data Protection Officer (DPO) of the controller.", + "examples": [ + { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "address", "country", "email"], + "properties": { + "name": { + "$id": "#/properties/dataProtectionOfficer/properties/name", + "type": "string", + "title": "Name", + "description": "The full name of the Data Protection Officer.", + "examples": ["Jane Super"] + }, + "address": { + "$id": "#/properties/dataProtectionOfficer/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the DPO.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/dataProtectionOfficer/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the Data Protection officer is located at.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/dataProtectionOfficer/properties/email", + "type": "string", + "title": "Email", + "description": "The contact email address of the Data Protection Officer.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/dataProtectionOfficer/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the Data Protection Officer (may include country prefix).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 5678"] + } + } + }, + "dataDisclosed": { + "$id": "#/properties/dataDisclosed", + "type": "array", + "title": "DataDisclosed", + "description": "A detailed explanation about which data is disclosed in the processing tasks.", + "examples": [ + [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0", + "title": "AnyOf schema", + "description": "The description of data disclosed.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "properties": { + "_id": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", + "type": "array", + "title": "Category", + "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", + "examples": ["E-mail address"], + "items": { "type": "string" } + }, + "purposes": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", + "type": "array", + "title": "Purposes", + "description": "The purpose for which a data item is processed for.", + "examples": [ + [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", + "title": "AnyOf schema for the purposes.", + "examples": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "properties": { + "purpose": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", + "type": "string", + "title": "Purpose", + "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", + "examples": ["Marketing"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "This schema refers to an exact description of the purpose the data is processed for.", + "examples": [ + "Newsletter will be sent out once a month." + ] + } + }, + "required": ["purpose", "description"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", + "type": "object" + } + }, + "legalBases": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", + "type": "array", + "title": "LegalBases", + "description": "An explanation about the legal bases for the processing of personal data disclosed.", + "examples": [ + [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", + "title": "AnyOf schema for the legal bases of the data disclosed.", + "examples": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + } + ], + "properties": { + "reference": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", + "type": "string", + "title": "Reference", + "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["GDPR-99-1-a"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the legal basis used.", + "examples": [ + "The data are processed on the basis of Art. 99 GDPR which states..." + ] + } + }, + "required": ["reference"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", + "type": "object" + } + }, + "legitimateInterests": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", + "type": "array", + "title": "LegitimateInterests", + "description": "An explanation about the legitimate interests for the processing of data disclosed.", + "examples": [ + [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", + "title": "AnyOf schema for legitimate interests.", + "examples": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "if": { + "properties": { "exists": { "const": true } }, + "required": ["exists"] + }, + "then": { "required": ["reasoning"] }, + "properties": { + "exists": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", + "type": "boolean", + "title": "Exists", + "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", + "default": false, + "examples": [true, false] + }, + "reasoning": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", + "type": "string", + "title": "Reasoning", + "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", + "examples": [ + "There is an legitimate interest based on ... and is not overwritten because ..." + ] + } + } + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", + "type": "object" + } + }, + "recipients": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", + "type": "array", + "title": "Recipients", + "description": "An explanation about the recipients of the data disclosed.", + "examples": [ + [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", + "title": "AnyOf schema if recipients", + "examples": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the third party (recipient).", + "examples": ["Yellow Company AG"] + }, + "division": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", + "type": "string", + "title": "Division", + "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", + "type": "string", + "title": "Address", + "description": "The address of the third party (recipient).", + "examples": ["Triana 123, 9999 Seville"] + }, + "country": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "representative": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative of the third party (recipient).", + "examples": [ + { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the representative of the third party (recipient).", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "The email address of the representative of the third party (recipient).", + "format": "email", + "examples": ["contact@yellowcompany.de"] + }, + "phone": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the representative of the third party (recipient).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 9876"] + } + } + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", + "type": "string", + "title": "Category", + "description": "The category of the the recipient.", + "examples": ["Marketing content provider"] + } + }, + "required": ["category"] + }, + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", + "title": "Second anyOf", + "examples": [ + { "category": "Responsible Statistical Institutes" } + ], + "properties": { + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", + "type": "string", + "title": "Category", + "description": "This category has to be given, even if the controller is not mentioned explicitly.", + "examples": ["Responsible Statistical Institutes"] + } + }, + "required": ["category"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", + "type": "object" + } + }, + "storage": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", + "type": "array", + "title": "Storage", + "description": "In this section, the duration of storage or storage criteria are given.", + "examples": [ + [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "properties": { + "temporal": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", + "type": "array", + "title": "Temporal", + "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", + "examples": [ + [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "properties": { + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "The description why the data has to be stored..", + "examples": ["Creating backups."] + }, + "ttl": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", + "type": "string", + "title": "Ttl", + "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", + "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", + "examples": [ + "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + ] + } + }, + "required": ["description", "ttl"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", + "type": "object" + } + }, + "purposeConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", + "type": "array", + "title": "PurposeConditional", + "description": "Specifies the purpose that requires data storage.", + "examples": [ + [ + "Data is stored until the end of the ordering process." + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + "Data is stored until the end of the ordering process." + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", + "type": "string" + } + }, + "legalBasisConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", + "type": "array", + "title": "LegalBasisConditional", + "description": "If the storage is required by law, the respective one has to specified in here.", + "examples": [["SGB-100-42"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", + "title": "First anyOf", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["SGB-100-42"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", + "type": "string" + } + }, + "aggregationFunction": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", + "type": "string", + "title": "AggregationFunction", + "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", + "default": "max", + "enum": ["min", "max", "sum", "avg"], + "examples": ["max"] + } + }, + "required": ["aggregationFunction"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", + "type": "object" + } + }, + "nonDisclosure": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", + "type": "object", + "title": "NonDisclosure", + "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", + "examples": [ + { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + ], + "required": [ + "legalRequirement", + "contractualRegulation", + "obligationToProvide", + "consequences" + ], + "properties": { + "legalRequirement": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", + "type": "boolean", + "title": "LegalRequirement", + "description": "Is there a legal requirement to collect these data?", + "default": false, + "examples": [false, true] + }, + "contractualRegulation": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", + "type": "boolean", + "title": "ContractualRegulation", + "description": "Is there a contractual regulation to collect these data?", + "default": false, + "examples": [false, true] + }, + "obligationToProvide": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", + "type": "boolean", + "title": "ObligationToProvide", + "description": "Is there an obligation for the data subject to provide these data?", + "default": false, + "examples": [false, true] + }, + "consequences": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", + "type": "string", + "title": "Consequences", + "description": "Description of the consequences in the case of non-disclosure.", + "examples": [ + "If the data is not disclosed, the shipment cannot be delivered." + ] + } + } + } + }, + "required": [ + "_id", + "category", + "purposes", + "legalBases", + "legitimateInterests", + "recipients", + "storage", + "nonDisclosure" + ] + } + ], + "$id": "#/properties/dataDisclosed/items", + "type": "object" + } + }, + "thirdCountryTransfers": { + "$id": "#/properties/thirdCountryTransfers", + "type": "array", + "title": "ThirdCountryTransfers", + "description": "This schema refers to the adequacy decisions of any third country transfers.", + "examples": [ + [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "properties": { + "country": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country code of the third country.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "adequacyDecision": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", + "type": "object", + "title": "AdequacyDecision", + "examples": [ + { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", + "type": "boolean", + "title": "Available", + "description": "Adequacy decision by the European commission exists?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the adequacy decision by the European commission.", + "examples": [ + "An adequacy decision was made on the 23rd April 2020 by..." + ] + } + } + }, + "appropriateGuarantees": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", + "type": "object", + "title": "AppropriateGuarantees", + "description": "Suitable guarantees according to Art. 45", + "examples": [ + { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", + "type": "boolean", + "title": "Available", + "description": "Do suitable guarantees according to Art. 45 exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", + "type": "string", + "title": "Description", + "description": "Description of suitable guarantees according to Art. 45", + "examples": [ + "Here the appropriate guarantee was formulated by..." + ] + } + } + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", + "type": "object", + "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", + "description": "Presence of enforceable rights and effective remedies", + "examples": [ + { + "available": true, + "description": "These rights are given because of..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", + "type": "boolean", + "title": "Available", + "description": "Presence of enforceable rights and effective remedies?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", + "type": "string", + "title": "Description", + "description": "Description of enforceable rights and effective remedies.", + "examples": ["These rights are given because of..."] + } + } + }, + "standardDataProtectionClause": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", + "type": "object", + "title": "StandardDataProtectionClause", + "description": "Schema on Standard Data Protection clauses.", + "examples": [ + { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", + "type": "boolean", + "title": "Available", + "description": "Does a standard data protection clause exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the standard data protection clause (may include link).", + "examples": [ + "The standard data protection clause which applies here can be found here: ..." + ] + } + } + } + } + } + ], + "$id": "#/properties/thirdCountryTransfers/items", + "type": "object" + } + }, + "accessAndDataPortability": { + "$id": "#/properties/accessAndDataPortability", + "type": "object", + "title": "AccessAndDataPortability", + "description": "Defining the right to access and data portability.", + "examples": [ + { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + } + ], + "required": ["available"], + "properties": { + "available": { + "$id": "#/properties/accessAndDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/accessAndDataPortability/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the requirements according to Art. 20 GDPR.", + "examples": [ + "Data access is possible through...", + "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." + ] + }, + "url": { + "$id": "#/properties/accessAndDataPortability/properties/url", + "type": "string", + "title": "Url", + "description": "URL to relevant resources such as access portals.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/access"] + }, + "email": { + "$id": "#/properties/accessAndDataPortability/properties/email", + "type": "string", + "title": "Email", + "description": "Contact email address", + "format": "email", + "examples": ["access@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "description": "ID evidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", + "type": "string" + } + }, + "administrativeFee": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", + "type": "object", + "title": "AdministrativeFee", + "description": "The fee that refers to several copies.", + "examples": [{ "amount": 0, "currency": "EUR" }], + "properties": { + "amount": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", + "type": "number", + "title": "Amount", + "description": "The amount of money to be paid for a copy.", + "default": 0, + "examples": [0] + }, + "currency": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", + "type": "string", + "title": "Currency", + "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", + "default": "EUR", + "minLength": 3, + "maxLength": 3, + "examples": ["EUR"] + } + }, + "required": ["amount", "currency"] + }, + "dataFormats": { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats", + "type": "array", + "title": "DataFormat", + "description": "An explanation about the data format(s) the data is provided in.", + "default": ["json"], + "examples": ["json", "xml"], + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", + "title": "First anyOf", + "examples": ["json", "xml"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", + "type": "string" + } + } + } + }, + "sources": { + "$id": "#/properties/sources", + "type": "array", + "title": "Sources", + "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", + "examples": [ + [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "properties": { + "_id": { + "$id": "#/properties/sources/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", + "examples": ["f1423cc00509931"] + }, + "dataCategory": { + "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", + "type": "string", + "title": "DataCategory", + "description": "The category the data refer to.", + "examples": ["Creditworthiness"] + }, + "sources": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources", + "type": "array", + "title": "Sources", + "description": "Specify the source(s) where the data come from.", + "examples": [ + [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ], + "properties": { + "description": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the source the data is taken from.", + "examples": [ + "This information could be retrieved from..." + ] + }, + "url": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", + "type": "string", + "title": "Url", + "description": "URL (reference) where the data is taken from.", + "format": "uri-reference", + "examples": ["https://blueCompany.org"] + }, + "publiclyAvailable": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", + "type": "boolean", + "title": "PubliclyAvailable", + "description": "Are these data publicly available?", + "default": false, + "examples": [false, true] + } + }, + "required": ["description", "url", "publiclyAvailable"] + } + ], + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", + "type": "object" + } + } + }, + "required": ["_id", "dataCategory", "sources"] + } + ], + "$id": "#/properties/sources/items", + "type": "object" + } + }, + "rightToInformation": { + "$id": "#/properties/rightToInformation", + "type": "object", + "title": "RightToInformation", + "description": "Refers to the right of information.", + "examples": [ + { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToInformation/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/rightToInformation/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the right.", + "examples": [ + "For the right to information please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToInformation/properties/url", + "type": "string", + "title": "Url", + "description": "URL to an online portal.", + "format": "uri-reference", + "examples": ["https://greencompany.org/rightToInformation"] + }, + "email": { + "$id": "#/properties/rightToInformation/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToInformation/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToRectificationOrDeletion": { + "$id": "#/properties/rightToRectificationOrDeletion", + "type": "object", + "title": "RightToRectificationOrDeletion", + "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", + "examples": [ + { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to rectification please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToDataPortability": { + "$id": "#/properties/rightToDataPortability", + "type": "object", + "title": "RightToDataPortability", + "description": "The right to data portability as stated in Art. 20 GDPR.", + "examples": [ + { + "available": true, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [false, true] + }, + "description": { + "$id": "#/properties/rightToDataPortability/properties/description", + "type": "string", + "title": "Description", + "examples": ["Data portability is only possible when..."] + }, + "url": { + "$id": "#/properties/rightToDataPortability/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToDataPortability/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy"] + } + ], + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToWithdrawConsent": { + "$id": "#/properties/rightToWithdrawConsent", + "type": "object", + "title": "RightToWithdrawConsent", + "description": "This schema refers to the right to withdraw consent.", + "examples": [ + { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToWithdrawConsent/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToWithdrawConsent/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to withdraw consent please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToWithdrawConsent/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToWithdrawConsent/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email verification"] + } + ], + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToComplain": { + "$id": "#/properties/rightToComplain", + "type": "object", + "title": "RightToComplain", + "description": "This schema refers to the right to complain.", + "examples": [ + { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description", "supervisoryAuthority"] }, + "properties": { + "available": { + "$id": "#/properties/rightToComplain/properties/available", + "type": "boolean", + "title": "Available", + "description": "Is this right available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToComplain/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to complain please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToComplain/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToComplain/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", + "type": "string" + } + }, + "supervisoryAuthority": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", + "type": "object", + "title": "SupervisoryAuthority", + "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", + "examples": [ + { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + ], + "properties": { + "name": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the supervisory authority.", + "examples": ["Commissioner for Data Protection"] + }, + "address": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", + "type": "string", + "title": "Address", + "description": "Adress of the supervisory authority.", + "examples": ["Friedrichstrasse 219, 10969 Berlin"] + }, + "country": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", + "type": "string", + "title": "Country", + "description": "Country of the supervisory authority.", + "minLength": 2, + "maxLength": 2, + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", + "type": "string", + "title": "Email", + "description": "Email adress of the supervisory authority.", + "format": "email", + "examples": ["mailbox@privacy-berlin.de"] + }, + "phone": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the supervisory authority.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 444 222 111"] + } + }, + "required": ["name"] + } + } + }, + "automatedDecisionMaking": { + "$id": "#/properties/automatedDecisionMaking", + "type": "object", + "title": "AutomatedDecisionMaking", + "description": "Automated decision making and potentially involved logic. Does include profiling.", + "examples": [ + { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + } + ], + "if": { + "properties": { "inUse": { "const": true } }, + "required": ["inUse"] + }, + "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, + "properties": { + "inUse": { + "$id": "#/properties/automatedDecisionMaking/properties/inUse", + "type": "boolean", + "title": "InUse", + "description": "Is automated decision making in use?", + "default": true, + "examples": [true, false] + }, + "logicInvolved": { + "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", + "type": "string", + "title": "LogicInvolved", + "description": "An explanation about the logic involved to automated decision making.", + "examples": ["The personal data are processed as follows..."] + }, + "scopeAndIntendedEffects": { + "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", + "type": "string", + "title": "ScopeAndIntendedEffects", + "description": "Scope and intended effects of such processing for the data subject.", + "examples": ["From processing follows..."] + } + } + }, + "changesOfPurpose": { + "$id": "#/properties/changesOfPurpose", + "type": "array", + "title": "ChangesOfPurpose", + "description": "Notification of change of purpose.", + "examples": [ + [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ], + "properties": { + "description": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the change of purpose.", + "examples": ["Due to technical requirements..."] + }, + "affectedDataCategories": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", + "type": "array", + "title": "AffectedDataCategories", + "description": "Data categories that are affected from the change of purpose.", + "examples": [["Email adress", "Credit score"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email adress", "Credit score"] + } + ], + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", + "type": "string" + } + }, + "plannedDateOfChange": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", + "type": "string", + "title": "PlannedDateOfChange", + "description": "Specify the planned date to the changes as ISO 8601 string.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-08-20"] + }, + "urlOfNewVersion": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", + "type": "string", + "title": "UrlOfNewVersion", + "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", + "examples": ["https://greencomp.de/tilt/2"] + } + } + } + ], + "$id": "#/properties/changesOfPurpose/items", + "type": "object" + } + } + }, + "required": [ + "meta", + "controller", + "dataProtectionOfficer", + "dataDisclosed", + "thirdCountryTransfers", + "accessAndDataPortability", + "sources", + "rightToInformation", + "rightToRectificationOrDeletion", + "rightToDataPortability", + "rightToWithdrawConsent", + "rightToComplain", + "automatedDecisionMaking", + "changesOfPurpose" + ] +} From 983a96f9674d2314a3e854e08bd7c5f861f32d06 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Thu, 9 Mar 2023 15:11:26 +0100 Subject: [PATCH 56/80] squash commits adding git pull before combined the file try next suggestion combined the file debug checkout combined the file typo combined the file next try test as list combined the file debug add second prettier option. combined the file adding pull and sequential order Prettified Code! trying just with one file combined the file slightly modified syntax combined the file next test combined the file files checking combined the file fix indent switch order combined the file allow empty commits Delete newfilefortesting.json combined the file test worked. combined the file remove the test file and rm properties combined the file Create 14_test.json combined the file Delete 06_properties.json combined the file Delete newfilefortesting.json combined the file adding committing one more try db more debug debug change location debugging file location retry github action insert missing tab. trying github action --- .github/workflows/main.yaml | 35 ++- combined.json | 1 + tilt_schema/00_$schema.json | 1 + tilt_schema/01_$id.json | 1 + tilt_schema/02_type.json | 1 + tilt_schema/03_title.json | 1 + tilt_schema/04_description.json | 1 + tilt_schema/05_examples.json | 1 + tilt_schema/07_required.json | 1 + tilt_schema/properties/00_meta.json | 1 + tilt_schema/properties/01_controller.json | 1 + .../properties/02_dataProtectionOfficer.json | 1 + tilt_schema/properties/03_dataDisclosed.json | 1 + .../properties/04_thirdCountryTransfers.json | 1 + .../05_accessAndDataPortability.json | 1 + tilt_schema/properties/06_sources.json | 1 + .../properties/07_rightToInformation.json | 1 + .../08_rightToRectificationOrDeletion.json | 1 + .../properties/09_rightToDataPortability.json | 1 + .../properties/10_rightToWithdrawConsent.json | 1 + .../properties/11_rightToComplain.json | 1 + .../12_automatedDecisionMaking.json | 1 + .../properties/13_changesOfPurpose.json | 1 + tilt_schema/recompile.py | 19 +- tilt_schema/split.ipynb | 218 ++++++++++++++++++ 25 files changed, 284 insertions(+), 10 deletions(-) create mode 100644 combined.json create mode 100644 tilt_schema/00_$schema.json create mode 100644 tilt_schema/01_$id.json create mode 100644 tilt_schema/02_type.json create mode 100644 tilt_schema/03_title.json create mode 100644 tilt_schema/04_description.json create mode 100644 tilt_schema/05_examples.json create mode 100644 tilt_schema/07_required.json create mode 100644 tilt_schema/properties/00_meta.json create mode 100644 tilt_schema/properties/01_controller.json create mode 100644 tilt_schema/properties/02_dataProtectionOfficer.json create mode 100644 tilt_schema/properties/03_dataDisclosed.json create mode 100644 tilt_schema/properties/04_thirdCountryTransfers.json create mode 100644 tilt_schema/properties/05_accessAndDataPortability.json create mode 100644 tilt_schema/properties/06_sources.json create mode 100644 tilt_schema/properties/07_rightToInformation.json create mode 100644 tilt_schema/properties/08_rightToRectificationOrDeletion.json create mode 100644 tilt_schema/properties/09_rightToDataPortability.json create mode 100644 tilt_schema/properties/10_rightToWithdrawConsent.json create mode 100644 tilt_schema/properties/11_rightToComplain.json create mode 100644 tilt_schema/properties/12_automatedDecisionMaking.json create mode 100644 tilt_schema/properties/13_changesOfPurpose.json create mode 100644 tilt_schema/split.ipynb diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 4fc7f16..638c8c8 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -8,10 +8,34 @@ on: pull_request: push: branches: - - v2 # !! Update this once we merge to master !! + - 15-github-action-ci-pipeline-for-merging-the-specification # !! Update this once we merge to master !! + +jobs: + + run: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Run Python script + run: | + python tilt_schema/recompile.py + git config user.name github-actions + git config user.email github-actions@github.com + git pull + git add . + git commit --allow-empty -m "combined the file" + git push -jobs: prettier: + needs: run runs-on: ubuntu-latest steps: @@ -20,9 +44,14 @@ jobs: with: # Make sure the actual branch is checked out when running on pull requests ref: ${{ github.head_ref }} + repository: ${{ github.repository }} + + - name: Pull changes from remote repository + run: git pull - name: Prettify code uses: creyD/prettier_action@v4.3 with: # This part is also where you can pass other options, for example: - prettier_options: --write **/tilt-schema.json \ No newline at end of file + prettier_options: --write combined.json tilt-schema.json + diff --git a/combined.json b/combined.json new file mode 100644 index 0000000..f4ad5f7 --- /dev/null +++ b/combined.json @@ -0,0 +1 @@ +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file diff --git a/tilt_schema/00_$schema.json b/tilt_schema/00_$schema.json new file mode 100644 index 0000000..63749aa --- /dev/null +++ b/tilt_schema/00_$schema.json @@ -0,0 +1 @@ +{"$schema": "http://json-schema.org/draft-07/schema"} \ No newline at end of file diff --git a/tilt_schema/01_$id.json b/tilt_schema/01_$id.json new file mode 100644 index 0000000..b3a1591 --- /dev/null +++ b/tilt_schema/01_$id.json @@ -0,0 +1 @@ +{"$id": "https://github.com/Transparency-Information-Language/schema"} \ No newline at end of file diff --git a/tilt_schema/02_type.json b/tilt_schema/02_type.json new file mode 100644 index 0000000..61ef6e4 --- /dev/null +++ b/tilt_schema/02_type.json @@ -0,0 +1 @@ +{"type": "object"} \ No newline at end of file diff --git a/tilt_schema/03_title.json b/tilt_schema/03_title.json new file mode 100644 index 0000000..27769bd --- /dev/null +++ b/tilt_schema/03_title.json @@ -0,0 +1 @@ +{"title": "Root schema of a Transparency Information Language"} \ No newline at end of file diff --git a/tilt_schema/04_description.json b/tilt_schema/04_description.json new file mode 100644 index 0000000..2edede7 --- /dev/null +++ b/tilt_schema/04_description.json @@ -0,0 +1 @@ +{"description": "This schema defines the Transparency Information Language"} \ No newline at end of file diff --git a/tilt_schema/05_examples.json b/tilt_schema/05_examples.json new file mode 100644 index 0000000..fe2bbbf --- /dev/null +++ b/tilt_schema/05_examples.json @@ -0,0 +1 @@ +{"examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}]} \ No newline at end of file diff --git a/tilt_schema/07_required.json b/tilt_schema/07_required.json new file mode 100644 index 0000000..0e6dc0f --- /dev/null +++ b/tilt_schema/07_required.json @@ -0,0 +1 @@ +{"required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file diff --git a/tilt_schema/properties/00_meta.json b/tilt_schema/properties/00_meta.json new file mode 100644 index 0000000..2ea6368 --- /dev/null +++ b/tilt_schema/properties/00_meta.json @@ -0,0 +1 @@ +{"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}} \ No newline at end of file diff --git a/tilt_schema/properties/01_controller.json b/tilt_schema/properties/01_controller.json new file mode 100644 index 0000000..b41b99a --- /dev/null +++ b/tilt_schema/properties/01_controller.json @@ -0,0 +1 @@ +{"controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}} \ No newline at end of file diff --git a/tilt_schema/properties/02_dataProtectionOfficer.json b/tilt_schema/properties/02_dataProtectionOfficer.json new file mode 100644 index 0000000..07a6642 --- /dev/null +++ b/tilt_schema/properties/02_dataProtectionOfficer.json @@ -0,0 +1 @@ +{"dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}} \ No newline at end of file diff --git a/tilt_schema/properties/03_dataDisclosed.json b/tilt_schema/properties/03_dataDisclosed.json new file mode 100644 index 0000000..3d8a34a --- /dev/null +++ b/tilt_schema/properties/03_dataDisclosed.json @@ -0,0 +1 @@ +{"dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}} \ No newline at end of file diff --git a/tilt_schema/properties/04_thirdCountryTransfers.json b/tilt_schema/properties/04_thirdCountryTransfers.json new file mode 100644 index 0000000..bf13519 --- /dev/null +++ b/tilt_schema/properties/04_thirdCountryTransfers.json @@ -0,0 +1 @@ +{"thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}} \ No newline at end of file diff --git a/tilt_schema/properties/05_accessAndDataPortability.json b/tilt_schema/properties/05_accessAndDataPortability.json new file mode 100644 index 0000000..98be952 --- /dev/null +++ b/tilt_schema/properties/05_accessAndDataPortability.json @@ -0,0 +1 @@ +{"accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/06_sources.json b/tilt_schema/properties/06_sources.json new file mode 100644 index 0000000..875c4bf --- /dev/null +++ b/tilt_schema/properties/06_sources.json @@ -0,0 +1 @@ +{"sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}} \ No newline at end of file diff --git a/tilt_schema/properties/07_rightToInformation.json b/tilt_schema/properties/07_rightToInformation.json new file mode 100644 index 0000000..d52a016 --- /dev/null +++ b/tilt_schema/properties/07_rightToInformation.json @@ -0,0 +1 @@ +{"rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/08_rightToRectificationOrDeletion.json b/tilt_schema/properties/08_rightToRectificationOrDeletion.json new file mode 100644 index 0000000..f3673a4 --- /dev/null +++ b/tilt_schema/properties/08_rightToRectificationOrDeletion.json @@ -0,0 +1 @@ +{"rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/09_rightToDataPortability.json b/tilt_schema/properties/09_rightToDataPortability.json new file mode 100644 index 0000000..a3f58ae --- /dev/null +++ b/tilt_schema/properties/09_rightToDataPortability.json @@ -0,0 +1 @@ +{"rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/10_rightToWithdrawConsent.json b/tilt_schema/properties/10_rightToWithdrawConsent.json new file mode 100644 index 0000000..04bd579 --- /dev/null +++ b/tilt_schema/properties/10_rightToWithdrawConsent.json @@ -0,0 +1 @@ +{"rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file diff --git a/tilt_schema/properties/11_rightToComplain.json b/tilt_schema/properties/11_rightToComplain.json new file mode 100644 index 0000000..c19ccbd --- /dev/null +++ b/tilt_schema/properties/11_rightToComplain.json @@ -0,0 +1 @@ +{"rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}} \ No newline at end of file diff --git a/tilt_schema/properties/12_automatedDecisionMaking.json b/tilt_schema/properties/12_automatedDecisionMaking.json new file mode 100644 index 0000000..83a318c --- /dev/null +++ b/tilt_schema/properties/12_automatedDecisionMaking.json @@ -0,0 +1 @@ +{"automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}} \ No newline at end of file diff --git a/tilt_schema/properties/13_changesOfPurpose.json b/tilt_schema/properties/13_changesOfPurpose.json new file mode 100644 index 0000000..3f79067 --- /dev/null +++ b/tilt_schema/properties/13_changesOfPurpose.json @@ -0,0 +1 @@ +{"changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}} \ No newline at end of file diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index be5ec96..830de1a 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -1,17 +1,20 @@ -import os -import json -import glob - def reconstruct(): + import os + import json + import glob """ func: Constructs the tilt-schema out of a number of constituent parts. """ + print(os.getcwd()) + + os.chdir('tilt_schema/') properties_sections = sorted(glob.glob('properties/*.json')) - + print(os.getcwd()) + print(properties_sections) # Update the properties file with the underlying values @@ -26,7 +29,7 @@ def reconstruct(): for item in data_props: combo_props.update(item) - # Write the combined data to a the properties file + # Write the combined data to the properties file with open('06_properties.json', 'w') as f: json.dump({'properties':combo_props}, f) @@ -51,9 +54,11 @@ def reconstruct(): # Write the combined data to a new JSON file with open('../combined.json', 'w') as f: json.dump(combined_data, f) - print('successfully created new json') + print('successfully created new json: ../combined.json') os.remove("06_properties.json") return +if __name__== "__main__": + reconstruct() \ No newline at end of file diff --git a/tilt_schema/split.ipynb b/tilt_schema/split.ipynb new file mode 100644 index 0000000..5af8e67 --- /dev/null +++ b/tilt_schema/split.ipynb @@ -0,0 +1,218 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import os\n", + "import glob\n", + "import time\n", + "\n", + "# adopted from chatGPT\n", + "\n", + "def split_json(filepath_og):\n", + " # Open the original JSON file\n", + " with open(filepath_og, 'r') as f:\n", + " data = json.load(f)\n", + "\n", + " # Iterate over the top-level keys in the JSON object\n", + " for i, key in enumerate(data.keys()):\n", + " # Create a new dictionary containing only the data for this key\n", + " section = { key: data[key] }\n", + "\n", + " # Write the section to a new JSON file\n", + " with open(f'{i:02d}_{key}.json', 'w') as f:\n", + " json.dump(section, f)\n", + "\n", + " return data.keys()\n", + "\n", + "split_json('../tilt-schema.json')\n", + "\n", + "\n", + "# Open the original JSON file\n", + "with open('06_properties.json', 'r') as f:\n", + " data = json.load(f)\n", + "\n", + "# Iterate over the top-level keys in the JSON object\n", + "for i, key in enumerate(data['properties'].keys()):\n", + " # Create a new dictionary containing only the data for this key\n", + " section = { key: data['properties'][key] }\n", + "\n", + " # Write the section to a new JSON file\n", + " os.makedirs(os.path.dirname(f'properties/{i:02d}_{key}.json'), exist_ok=True)\n", + " with open(f'properties/{i:02d}_{key}.json', 'w') as f:\n", + " json.dump(section, f)\n", + "\n", + "os.remove(\"06_properties.json\")" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [], + "source": [ + "def reconstruct():\n", + "\n", + " \"\"\"\n", + " func: Constructs the tilt-schema out of a number of constituent parts.\n", + "\n", + "\n", + " \"\"\"\n", + "\n", + " \n", + " properties_sections = sorted(glob.glob('properties/*.json'))\n", + "\n", + " \n", + " print(properties_sections)\n", + " \n", + " # Update the properties file with the underlying values \n", + " # Note: presupposes that all changes to the properties have been made in the properties-folder\n", + " data_props = []\n", + " for subfile in properties_sections:\n", + "\n", + " with open(subfile, 'r') as sf:\n", + " data_props.append(json.load(sf))\n", + " \n", + " combo_props = {}\n", + " for item in data_props:\n", + " combo_props.update(item)\n", + " \n", + " # Write the combined data to a the properties file\n", + " with open('06_properties.json', 'w') as f:\n", + " json.dump({'properties':combo_props}, f)\n", + " \n", + " meta_sections = sorted(glob.glob(\"*.json\"))\n", + " print(meta_sections)\n", + "\n", + "\n", + " # Create an empty list to hold the data from each file\n", + " data = []\n", + "\n", + " # Iterate over each JSON file and load its contents into the data list\n", + " for file in meta_sections:\n", + " with open(file, 'r') as f:\n", + " data.append(json.load(f))\n", + "\n", + " # Combine all the data into a single dictionary\n", + " combined_data = {}\n", + " for item in data:\n", + " combined_data.update(item)\n", + "\n", + " \n", + " # Write the combined data to a new JSON file\n", + " with open('../combined.json', 'w') as f:\n", + " json.dump(combined_data, f)\n", + " print('successfully created new json')\n", + "\n", + " os.remove(\"06_properties.json\")\n", + "\n", + " return" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['properties/00_meta.json', 'properties/01_controller.json', 'properties/02_dataProtectionOfficer.json', 'properties/03_dataDisclosed.json', 'properties/04_thirdCountryTransfers.json', 'properties/05_accessAndDataPortability.json', 'properties/06_sources.json', 'properties/07_rightToInformation.json', 'properties/08_rightToRectificationOrDeletion.json', 'properties/09_rightToDataPortability.json', 'properties/10_rightToWithdrawConsent.json', 'properties/11_rightToComplain.json', 'properties/12_automatedDecisionMaking.json', 'properties/13_changesOfPurpose.json']\n", + "['00_$schema.json', '01_$id.json', '02_type.json', '03_title.json', '04_description.json', '05_examples.json', '06_properties.json', '07_required.json']\n", + "successfully created new json\n" + ] + } + ], + "source": [ + "reconstruct()" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No differences found between the two files.\n" + ] + } + ], + "source": [ + "# Load the data from the first file\n", + "with open('../tilt-schema.json', 'r') as f:\n", + " data1 = json.load(f)\n", + "\n", + "# Load the data from the second file\n", + "with open('../combined.json', 'r') as f:\n", + " data2 = json.load(f)\n", + "\n", + "# Compare the two data sets and print out any differences\n", + "if data1 != data2:\n", + " print(\"Differences found between the two files:\")\n", + " for key in set(data1.keys()).union(set(data2.keys())):\n", + " if data1.get(key) != data2.get(key):\n", + " print(f\"Key '{key}' differs between the files:\")\n", + " print(f\"File 1: {data1.get(key)}\")\n", + " print(f\"File 2: {data2.get(key)}\")\n", + "else:\n", + " print(\"No differences found between the two files.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "63466\n", + "63466\n" + ] + } + ], + "source": [ + "print(len(str(data1)))\n", + "print(len(str(data2)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From e3a5d9d7337e48c8a5e7d0e4f2797d07cd6bff68 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 15 Mar 2023 12:29:28 +0000 Subject: [PATCH 57/80] combined the file --- combined.json | 2193 +------------------------------------------------ 1 file changed, 1 insertion(+), 2192 deletions(-) diff --git a/combined.json b/combined.json index f5a99a2..f4ad5f7 100644 --- a/combined.json +++ b/combined.json @@ -1,2192 +1 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/Transparency-Information-Language/schema", - "type": "object", - "title": "Root schema of a Transparency Information Language", - "description": "This schema defines the Transparency Information Language", - "examples": [ - { - "meta": { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - }, - "controller": { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - }, - "dataProtectionOfficer": { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "dataDisclosed": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "thirdCountryTransfers": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "accessAndDataPortability": { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - }, - "sources": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "rightToInformation": { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToRectificationOrDeletion": { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToDataPortability": { - "available": false, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - }, - "rightToWithdrawConsent": { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - }, - "rightToComplain": { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - }, - "automatedDecisionMaking": { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - }, - "changesOfPurpose": [ - { - "description": "Due to techncial requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - } - ], - "properties": { - "meta": { - "$id": "#/properties/meta", - "type": "object", - "title": "Meta", - "description": "Meta information for the identification and verification of the document.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - } - ], - "required": [ - "_id", - "name", - "created", - "modified", - "version", - "language", - "status", - "url", - "_hash" - ], - "properties": { - "_id": { - "$id": "#/properties/meta/properties/_id", - "type": "string", - "title": "_id", - "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "name": { - "$id": "#/properties/meta/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the data controller.", - "examples": ["Green Company"] - }, - "created": { - "$id": "#/properties/meta/properties/created", - "type": "string", - "title": "Created", - "description": "Creation date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "modified": { - "$id": "#/properties/meta/properties/modified", - "type": "string", - "title": "Modified", - "description": "Last modified date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15: 53: 05.929588"] - }, - "version": { - "$id": "#/properties/meta/properties/version", - "type": "integer", - "title": "Version", - "description": "This number serves to version documents of a controller.", - "default": 1, - "minimum": 1, - "examples": [2] - }, - "language": { - "$id": "#/properties/meta/properties/language", - "type": "string", - "title": "Language", - "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", - "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", - "default": "en", - "examples": ["de"] - }, - "status": { - "$id": "#/properties/meta/properties/status", - "type": "string", - "title": "Status", - "description": "The status of an instance can be active or inactive depending on the policy's legal force.", - "default": "active", - "pattern": "^(active|inactive)$", - "examples": ["active", "inactive"] - }, - "url": { - "$id": "#/properties/meta/properties/url", - "type": "string", - "title": "Url", - "description": "URL to this schema.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/privacy"] - }, - "_hash": { - "$id": "#/properties/meta/properties/_hash", - "type": "string", - "title": "_hash", - "description": "The hash is based on one SHA256 calculation of the document.", - "minLength": 64, - "maxLength": 64, - "examples": [ - "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" - ] - } - } - }, - "controller": { - "$id": "#/properties/controller", - "type": "object", - "title": "Controller", - "description": "The responsible controller is defined in here.", - "examples": [ - { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "sector": "J" - } - ], - "required": ["name", "address", "country", "representative"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller.", - "examples": ["Green Company AG"] - }, - "division": { - "$id": "#/properties/controller/properties/division", - "type": "string", - "title": "Division", - "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/controller/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the controller.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/controller/properties/country", - "type": "string", - "title": "Country", - "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", - "default": "DE", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "representative": { - "$id": "#/properties/controller/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative is a responsible real person that represents the controller.", - "examples": [ - { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "email"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller's representative.", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/controller/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "Email address of the controller's representative.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/controller/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the controller's representative.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["+49 151 1234 5678"] - } - } - }, - "sector": { - "$id": "#/properties/controller/properties/sector", - "type": "string", - "description": "The industry of the controller according to UN ISIC Rev. 4", - "example": "J", - "maxLength": 1, - "pattern": "[A-Z]" - } - } - }, - "dataProtectionOfficer": { - "$id": "#/properties/dataProtectionOfficer", - "type": "object", - "title": "DataProtectionOfficer", - "description": "The Data Protection Officer (DPO) of the controller.", - "examples": [ - { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "address", "country", "email"], - "properties": { - "name": { - "$id": "#/properties/dataProtectionOfficer/properties/name", - "type": "string", - "title": "Name", - "description": "The full name of the Data Protection Officer.", - "examples": ["Jane Super"] - }, - "address": { - "$id": "#/properties/dataProtectionOfficer/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the DPO.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/dataProtectionOfficer/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the Data Protection officer is located at.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/dataProtectionOfficer/properties/email", - "type": "string", - "title": "Email", - "description": "The contact email address of the Data Protection Officer.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/dataProtectionOfficer/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the Data Protection Officer (may include country prefix).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 5678"] - } - } - }, - "dataDisclosed": { - "$id": "#/properties/dataDisclosed", - "type": "array", - "title": "DataDisclosed", - "description": "A detailed explanation about which data is disclosed in the processing tasks.", - "examples": [ - [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0", - "title": "AnyOf schema", - "description": "The description of data disclosed.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "properties": { - "_id": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", - "type": "array", - "title": "Category", - "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": ["E-mail address"], - "items": { "type": "string" } - }, - "purposes": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", - "type": "array", - "title": "Purposes", - "description": "The purpose for which a data item is processed for.", - "examples": [ - [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", - "title": "AnyOf schema for the purposes.", - "examples": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "properties": { - "purpose": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", - "type": "string", - "title": "Purpose", - "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": ["Marketing"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "This schema refers to an exact description of the purpose the data is processed for.", - "examples": [ - "Newsletter will be sent out once a month." - ] - } - }, - "required": ["purpose", "description"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", - "type": "object" - } - }, - "legalBases": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", - "type": "array", - "title": "LegalBases", - "description": "An explanation about the legal bases for the processing of personal data disclosed.", - "examples": [ - [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", - "title": "AnyOf schema for the legal bases of the data disclosed.", - "examples": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - } - ], - "properties": { - "reference": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", - "type": "string", - "title": "Reference", - "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["GDPR-99-1-a"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the legal basis used.", - "examples": [ - "The data are processed on the basis of Art. 99 GDPR which states..." - ] - } - }, - "required": ["reference"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", - "type": "object" - } - }, - "legitimateInterests": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", - "type": "array", - "title": "LegitimateInterests", - "description": "An explanation about the legitimate interests for the processing of data disclosed.", - "examples": [ - [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", - "title": "AnyOf schema for legitimate interests.", - "examples": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "if": { - "properties": { "exists": { "const": true } }, - "required": ["exists"] - }, - "then": { "required": ["reasoning"] }, - "properties": { - "exists": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", - "type": "boolean", - "title": "Exists", - "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", - "default": false, - "examples": [true, false] - }, - "reasoning": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", - "type": "string", - "title": "Reasoning", - "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", - "examples": [ - "There is an legitimate interest based on ... and is not overwritten because ..." - ] - } - } - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", - "type": "object" - } - }, - "recipients": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", - "type": "array", - "title": "Recipients", - "description": "An explanation about the recipients of the data disclosed.", - "examples": [ - [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", - "title": "AnyOf schema if recipients", - "examples": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the third party (recipient).", - "examples": ["Yellow Company AG"] - }, - "division": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", - "type": "string", - "title": "Division", - "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", - "type": "string", - "title": "Address", - "description": "The address of the third party (recipient).", - "examples": ["Triana 123, 9999 Seville"] - }, - "country": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "representative": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative of the third party (recipient).", - "examples": [ - { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the representative of the third party (recipient).", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "The email address of the representative of the third party (recipient).", - "format": "email", - "examples": ["contact@yellowcompany.de"] - }, - "phone": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the representative of the third party (recipient).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 9876"] - } - } - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", - "type": "string", - "title": "Category", - "description": "The category of the the recipient.", - "examples": ["Marketing content provider"] - } - }, - "required": ["category"] - }, - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", - "title": "Second anyOf", - "examples": [ - { "category": "Responsible Statistical Institutes" } - ], - "properties": { - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", - "type": "string", - "title": "Category", - "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": ["Responsible Statistical Institutes"] - } - }, - "required": ["category"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", - "type": "object" - } - }, - "storage": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", - "type": "array", - "title": "Storage", - "description": "In this section, the duration of storage or storage criteria are given.", - "examples": [ - [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "properties": { - "temporal": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", - "type": "array", - "title": "Temporal", - "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", - "examples": [ - [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "properties": { - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "The description why the data has to be stored..", - "examples": ["Creating backups."] - }, - "ttl": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", - "type": "string", - "title": "Ttl", - "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", - "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", - "examples": [ - "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - ] - } - }, - "required": ["description", "ttl"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", - "type": "object" - } - }, - "purposeConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", - "type": "array", - "title": "PurposeConditional", - "description": "Specifies the purpose that requires data storage.", - "examples": [ - [ - "Data is stored until the end of the ordering process." - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - "Data is stored until the end of the ordering process." - ] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", - "type": "string" - } - }, - "legalBasisConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", - "type": "array", - "title": "LegalBasisConditional", - "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [["SGB-100-42"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", - "title": "First anyOf", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["SGB-100-42"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", - "type": "string" - } - }, - "aggregationFunction": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", - "type": "string", - "title": "AggregationFunction", - "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", - "default": "max", - "enum": ["min", "max", "sum", "avg"], - "examples": ["max"] - } - }, - "required": ["aggregationFunction"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", - "type": "object" - } - }, - "nonDisclosure": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", - "type": "object", - "title": "NonDisclosure", - "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", - "examples": [ - { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - ], - "required": [ - "legalRequirement", - "contractualRegulation", - "obligationToProvide", - "consequences" - ], - "properties": { - "legalRequirement": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", - "type": "boolean", - "title": "LegalRequirement", - "description": "Is there a legal requirement to collect these data?", - "default": false, - "examples": [false, true] - }, - "contractualRegulation": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", - "type": "boolean", - "title": "ContractualRegulation", - "description": "Is there a contractual regulation to collect these data?", - "default": false, - "examples": [false, true] - }, - "obligationToProvide": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", - "type": "boolean", - "title": "ObligationToProvide", - "description": "Is there an obligation for the data subject to provide these data?", - "default": false, - "examples": [false, true] - }, - "consequences": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", - "type": "string", - "title": "Consequences", - "description": "Description of the consequences in the case of non-disclosure.", - "examples": [ - "If the data is not disclosed, the shipment cannot be delivered." - ] - } - } - } - }, - "required": [ - "_id", - "category", - "purposes", - "legalBases", - "legitimateInterests", - "recipients", - "storage", - "nonDisclosure" - ] - } - ], - "$id": "#/properties/dataDisclosed/items", - "type": "object" - } - }, - "thirdCountryTransfers": { - "$id": "#/properties/thirdCountryTransfers", - "type": "array", - "title": "ThirdCountryTransfers", - "description": "This schema refers to the adequacy decisions of any third country transfers.", - "examples": [ - [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "properties": { - "country": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country code of the third country.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "adequacyDecision": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", - "type": "object", - "title": "AdequacyDecision", - "examples": [ - { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", - "type": "boolean", - "title": "Available", - "description": "Adequacy decision by the European commission exists?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the adequacy decision by the European commission.", - "examples": [ - "An adequacy decision was made on the 23rd April 2020 by..." - ] - } - } - }, - "appropriateGuarantees": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", - "type": "object", - "title": "AppropriateGuarantees", - "description": "Suitable guarantees according to Art. 45", - "examples": [ - { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", - "type": "boolean", - "title": "Available", - "description": "Do suitable guarantees according to Art. 45 exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", - "type": "string", - "title": "Description", - "description": "Description of suitable guarantees according to Art. 45", - "examples": [ - "Here the appropriate guarantee was formulated by..." - ] - } - } - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", - "type": "object", - "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", - "description": "Presence of enforceable rights and effective remedies", - "examples": [ - { - "available": true, - "description": "These rights are given because of..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", - "type": "boolean", - "title": "Available", - "description": "Presence of enforceable rights and effective remedies?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", - "type": "string", - "title": "Description", - "description": "Description of enforceable rights and effective remedies.", - "examples": ["These rights are given because of..."] - } - } - }, - "standardDataProtectionClause": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", - "type": "object", - "title": "StandardDataProtectionClause", - "description": "Schema on Standard Data Protection clauses.", - "examples": [ - { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", - "type": "boolean", - "title": "Available", - "description": "Does a standard data protection clause exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the standard data protection clause (may include link).", - "examples": [ - "The standard data protection clause which applies here can be found here: ..." - ] - } - } - } - } - } - ], - "$id": "#/properties/thirdCountryTransfers/items", - "type": "object" - } - }, - "accessAndDataPortability": { - "$id": "#/properties/accessAndDataPortability", - "type": "object", - "title": "AccessAndDataPortability", - "description": "Defining the right to access and data portability.", - "examples": [ - { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - } - ], - "required": ["available"], - "properties": { - "available": { - "$id": "#/properties/accessAndDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/accessAndDataPortability/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the requirements according to Art. 20 GDPR.", - "examples": [ - "Data access is possible through...", - "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." - ] - }, - "url": { - "$id": "#/properties/accessAndDataPortability/properties/url", - "type": "string", - "title": "Url", - "description": "URL to relevant resources such as access portals.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/access"] - }, - "email": { - "$id": "#/properties/accessAndDataPortability/properties/email", - "type": "string", - "title": "Email", - "description": "Contact email address", - "format": "email", - "examples": ["access@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "description": "ID evidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", - "type": "string" - } - }, - "administrativeFee": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", - "type": "object", - "title": "AdministrativeFee", - "description": "The fee that refers to several copies.", - "examples": [{ "amount": 0, "currency": "EUR" }], - "properties": { - "amount": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", - "type": "number", - "title": "Amount", - "description": "The amount of money to be paid for a copy.", - "default": 0, - "examples": [0] - }, - "currency": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", - "type": "string", - "title": "Currency", - "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", - "default": "EUR", - "minLength": 3, - "maxLength": 3, - "examples": ["EUR"] - } - }, - "required": ["amount", "currency"] - }, - "dataFormats": { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats", - "type": "array", - "title": "DataFormat", - "description": "An explanation about the data format(s) the data is provided in.", - "default": ["json"], - "examples": ["json", "xml"], - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", - "title": "First anyOf", - "examples": ["json", "xml"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", - "type": "string" - } - } - } - }, - "sources": { - "$id": "#/properties/sources", - "type": "array", - "title": "Sources", - "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", - "examples": [ - [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "properties": { - "_id": { - "$id": "#/properties/sources/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": ["f1423cc00509931"] - }, - "dataCategory": { - "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", - "type": "string", - "title": "DataCategory", - "description": "The category the data refer to.", - "examples": ["Creditworthiness"] - }, - "sources": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources", - "type": "array", - "title": "Sources", - "description": "Specify the source(s) where the data come from.", - "examples": [ - [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ], - "properties": { - "description": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the source the data is taken from.", - "examples": [ - "This information could be retrieved from..." - ] - }, - "url": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", - "type": "string", - "title": "Url", - "description": "URL (reference) where the data is taken from.", - "format": "uri-reference", - "examples": ["https://blueCompany.org"] - }, - "publiclyAvailable": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", - "type": "boolean", - "title": "PubliclyAvailable", - "description": "Are these data publicly available?", - "default": false, - "examples": [false, true] - } - }, - "required": ["description", "url", "publiclyAvailable"] - } - ], - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", - "type": "object" - } - } - }, - "required": ["_id", "dataCategory", "sources"] - } - ], - "$id": "#/properties/sources/items", - "type": "object" - } - }, - "rightToInformation": { - "$id": "#/properties/rightToInformation", - "type": "object", - "title": "RightToInformation", - "description": "Refers to the right of information.", - "examples": [ - { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToInformation/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/rightToInformation/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the right.", - "examples": [ - "For the right to information please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToInformation/properties/url", - "type": "string", - "title": "Url", - "description": "URL to an online portal.", - "format": "uri-reference", - "examples": ["https://greencompany.org/rightToInformation"] - }, - "email": { - "$id": "#/properties/rightToInformation/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToInformation/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToRectificationOrDeletion": { - "$id": "#/properties/rightToRectificationOrDeletion", - "type": "object", - "title": "RightToRectificationOrDeletion", - "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", - "examples": [ - { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to rectification please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToDataPortability": { - "$id": "#/properties/rightToDataPortability", - "type": "object", - "title": "RightToDataPortability", - "description": "The right to data portability as stated in Art. 20 GDPR.", - "examples": [ - { - "available": true, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [false, true] - }, - "description": { - "$id": "#/properties/rightToDataPortability/properties/description", - "type": "string", - "title": "Description", - "examples": ["Data portability is only possible when..."] - }, - "url": { - "$id": "#/properties/rightToDataPortability/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToDataPortability/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy"] - } - ], - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToWithdrawConsent": { - "$id": "#/properties/rightToWithdrawConsent", - "type": "object", - "title": "RightToWithdrawConsent", - "description": "This schema refers to the right to withdraw consent.", - "examples": [ - { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToWithdrawConsent/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToWithdrawConsent/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to withdraw consent please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToWithdrawConsent/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToWithdrawConsent/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email verification"] - } - ], - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToComplain": { - "$id": "#/properties/rightToComplain", - "type": "object", - "title": "RightToComplain", - "description": "This schema refers to the right to complain.", - "examples": [ - { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description", "supervisoryAuthority"] }, - "properties": { - "available": { - "$id": "#/properties/rightToComplain/properties/available", - "type": "boolean", - "title": "Available", - "description": "Is this right available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToComplain/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to complain please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToComplain/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToComplain/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", - "type": "string" - } - }, - "supervisoryAuthority": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", - "type": "object", - "title": "SupervisoryAuthority", - "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", - "examples": [ - { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - ], - "properties": { - "name": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the supervisory authority.", - "examples": ["Commissioner for Data Protection"] - }, - "address": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", - "type": "string", - "title": "Address", - "description": "Adress of the supervisory authority.", - "examples": ["Friedrichstrasse 219, 10969 Berlin"] - }, - "country": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", - "type": "string", - "title": "Country", - "description": "Country of the supervisory authority.", - "minLength": 2, - "maxLength": 2, - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", - "type": "string", - "title": "Email", - "description": "Email adress of the supervisory authority.", - "format": "email", - "examples": ["mailbox@privacy-berlin.de"] - }, - "phone": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the supervisory authority.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 444 222 111"] - } - }, - "required": ["name"] - } - } - }, - "automatedDecisionMaking": { - "$id": "#/properties/automatedDecisionMaking", - "type": "object", - "title": "AutomatedDecisionMaking", - "description": "Automated decision making and potentially involved logic. Does include profiling.", - "examples": [ - { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - } - ], - "if": { - "properties": { "inUse": { "const": true } }, - "required": ["inUse"] - }, - "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, - "properties": { - "inUse": { - "$id": "#/properties/automatedDecisionMaking/properties/inUse", - "type": "boolean", - "title": "InUse", - "description": "Is automated decision making in use?", - "default": true, - "examples": [true, false] - }, - "logicInvolved": { - "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", - "type": "string", - "title": "LogicInvolved", - "description": "An explanation about the logic involved to automated decision making.", - "examples": ["The personal data are processed as follows..."] - }, - "scopeAndIntendedEffects": { - "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", - "type": "string", - "title": "ScopeAndIntendedEffects", - "description": "Scope and intended effects of such processing for the data subject.", - "examples": ["From processing follows..."] - } - } - }, - "changesOfPurpose": { - "$id": "#/properties/changesOfPurpose", - "type": "array", - "title": "ChangesOfPurpose", - "description": "Notification of change of purpose.", - "examples": [ - [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ], - "properties": { - "description": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the change of purpose.", - "examples": ["Due to technical requirements..."] - }, - "affectedDataCategories": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", - "type": "array", - "title": "AffectedDataCategories", - "description": "Data categories that are affected from the change of purpose.", - "examples": [["Email adress", "Credit score"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email adress", "Credit score"] - } - ], - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", - "type": "string" - } - }, - "plannedDateOfChange": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", - "type": "string", - "title": "PlannedDateOfChange", - "description": "Specify the planned date to the changes as ISO 8601 string.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-08-20"] - }, - "urlOfNewVersion": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", - "type": "string", - "title": "UrlOfNewVersion", - "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": ["https://greencomp.de/tilt/2"] - } - } - } - ], - "$id": "#/properties/changesOfPurpose/items", - "type": "object" - } - } - }, - "required": [ - "meta", - "controller", - "dataProtectionOfficer", - "dataDisclosed", - "thirdCountryTransfers", - "accessAndDataPortability", - "sources", - "rightToInformation", - "rightToRectificationOrDeletion", - "rightToDataPortability", - "rightToWithdrawConsent", - "rightToComplain", - "automatedDecisionMaking", - "changesOfPurpose" - ] -} +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From 044299120c3d1fbcb9775f075d80d38c1c3c57c9 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 15 Mar 2023 12:29:43 +0000 Subject: [PATCH 58/80] Prettified Code! --- combined.json | 2193 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 2192 insertions(+), 1 deletion(-) diff --git a/combined.json b/combined.json index f4ad5f7..f5a99a2 100644 --- a/combined.json +++ b/combined.json @@ -1 +1,2192 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/Transparency-Information-Language/schema", + "type": "object", + "title": "Root schema of a Transparency Information Language", + "description": "This schema defines the Transparency Information Language", + "examples": [ + { + "meta": { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + }, + "controller": { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + }, + "dataProtectionOfficer": { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "dataDisclosed": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": ["E-mail address"], + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "thirdCountryTransfers": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "accessAndDataPortability": { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + }, + "sources": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "rightToInformation": { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToRectificationOrDeletion": { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToDataPortability": { + "available": false, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + }, + "rightToWithdrawConsent": { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + }, + "rightToComplain": { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + }, + "automatedDecisionMaking": { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + }, + "changesOfPurpose": [ + { + "description": "Due to techncial requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + } + ], + "properties": { + "meta": { + "$id": "#/properties/meta", + "type": "object", + "title": "Meta", + "description": "Meta information for the identification and verification of the document.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + } + ], + "required": [ + "_id", + "name", + "created", + "modified", + "version", + "language", + "status", + "url", + "_hash" + ], + "properties": { + "_id": { + "$id": "#/properties/meta/properties/_id", + "type": "string", + "title": "_id", + "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "name": { + "$id": "#/properties/meta/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the data controller.", + "examples": ["Green Company"] + }, + "created": { + "$id": "#/properties/meta/properties/created", + "type": "string", + "title": "Created", + "description": "Creation date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "modified": { + "$id": "#/properties/meta/properties/modified", + "type": "string", + "title": "Modified", + "description": "Last modified date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15: 53: 05.929588"] + }, + "version": { + "$id": "#/properties/meta/properties/version", + "type": "integer", + "title": "Version", + "description": "This number serves to version documents of a controller.", + "default": 1, + "minimum": 1, + "examples": [2] + }, + "language": { + "$id": "#/properties/meta/properties/language", + "type": "string", + "title": "Language", + "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", + "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", + "default": "en", + "examples": ["de"] + }, + "status": { + "$id": "#/properties/meta/properties/status", + "type": "string", + "title": "Status", + "description": "The status of an instance can be active or inactive depending on the policy's legal force.", + "default": "active", + "pattern": "^(active|inactive)$", + "examples": ["active", "inactive"] + }, + "url": { + "$id": "#/properties/meta/properties/url", + "type": "string", + "title": "Url", + "description": "URL to this schema.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/privacy"] + }, + "_hash": { + "$id": "#/properties/meta/properties/_hash", + "type": "string", + "title": "_hash", + "description": "The hash is based on one SHA256 calculation of the document.", + "minLength": 64, + "maxLength": 64, + "examples": [ + "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + ] + } + } + }, + "controller": { + "$id": "#/properties/controller", + "type": "object", + "title": "Controller", + "description": "The responsible controller is defined in here.", + "examples": [ + { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "sector": "J" + } + ], + "required": ["name", "address", "country", "representative"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller.", + "examples": ["Green Company AG"] + }, + "division": { + "$id": "#/properties/controller/properties/division", + "type": "string", + "title": "Division", + "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/controller/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the controller.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/controller/properties/country", + "type": "string", + "title": "Country", + "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", + "default": "DE", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "representative": { + "$id": "#/properties/controller/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative is a responsible real person that represents the controller.", + "examples": [ + { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "email"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller's representative.", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/controller/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "Email address of the controller's representative.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/controller/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the controller's representative.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["+49 151 1234 5678"] + } + } + }, + "sector": { + "$id": "#/properties/controller/properties/sector", + "type": "string", + "description": "The industry of the controller according to UN ISIC Rev. 4", + "example": "J", + "maxLength": 1, + "pattern": "[A-Z]" + } + } + }, + "dataProtectionOfficer": { + "$id": "#/properties/dataProtectionOfficer", + "type": "object", + "title": "DataProtectionOfficer", + "description": "The Data Protection Officer (DPO) of the controller.", + "examples": [ + { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "address", "country", "email"], + "properties": { + "name": { + "$id": "#/properties/dataProtectionOfficer/properties/name", + "type": "string", + "title": "Name", + "description": "The full name of the Data Protection Officer.", + "examples": ["Jane Super"] + }, + "address": { + "$id": "#/properties/dataProtectionOfficer/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the DPO.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/dataProtectionOfficer/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the Data Protection officer is located at.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/dataProtectionOfficer/properties/email", + "type": "string", + "title": "Email", + "description": "The contact email address of the Data Protection Officer.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/dataProtectionOfficer/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the Data Protection Officer (may include country prefix).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 5678"] + } + } + }, + "dataDisclosed": { + "$id": "#/properties/dataDisclosed", + "type": "array", + "title": "DataDisclosed", + "description": "A detailed explanation about which data is disclosed in the processing tasks.", + "examples": [ + [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0", + "title": "AnyOf schema", + "description": "The description of data disclosed.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "properties": { + "_id": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", + "type": "array", + "title": "Category", + "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", + "examples": ["E-mail address"], + "items": { "type": "string" } + }, + "purposes": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", + "type": "array", + "title": "Purposes", + "description": "The purpose for which a data item is processed for.", + "examples": [ + [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", + "title": "AnyOf schema for the purposes.", + "examples": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "properties": { + "purpose": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", + "type": "string", + "title": "Purpose", + "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", + "examples": ["Marketing"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "This schema refers to an exact description of the purpose the data is processed for.", + "examples": [ + "Newsletter will be sent out once a month." + ] + } + }, + "required": ["purpose", "description"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", + "type": "object" + } + }, + "legalBases": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", + "type": "array", + "title": "LegalBases", + "description": "An explanation about the legal bases for the processing of personal data disclosed.", + "examples": [ + [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", + "title": "AnyOf schema for the legal bases of the data disclosed.", + "examples": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + } + ], + "properties": { + "reference": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", + "type": "string", + "title": "Reference", + "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["GDPR-99-1-a"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the legal basis used.", + "examples": [ + "The data are processed on the basis of Art. 99 GDPR which states..." + ] + } + }, + "required": ["reference"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", + "type": "object" + } + }, + "legitimateInterests": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", + "type": "array", + "title": "LegitimateInterests", + "description": "An explanation about the legitimate interests for the processing of data disclosed.", + "examples": [ + [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", + "title": "AnyOf schema for legitimate interests.", + "examples": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "if": { + "properties": { "exists": { "const": true } }, + "required": ["exists"] + }, + "then": { "required": ["reasoning"] }, + "properties": { + "exists": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", + "type": "boolean", + "title": "Exists", + "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", + "default": false, + "examples": [true, false] + }, + "reasoning": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", + "type": "string", + "title": "Reasoning", + "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", + "examples": [ + "There is an legitimate interest based on ... and is not overwritten because ..." + ] + } + } + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", + "type": "object" + } + }, + "recipients": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", + "type": "array", + "title": "Recipients", + "description": "An explanation about the recipients of the data disclosed.", + "examples": [ + [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", + "title": "AnyOf schema if recipients", + "examples": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the third party (recipient).", + "examples": ["Yellow Company AG"] + }, + "division": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", + "type": "string", + "title": "Division", + "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", + "type": "string", + "title": "Address", + "description": "The address of the third party (recipient).", + "examples": ["Triana 123, 9999 Seville"] + }, + "country": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "representative": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative of the third party (recipient).", + "examples": [ + { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the representative of the third party (recipient).", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "The email address of the representative of the third party (recipient).", + "format": "email", + "examples": ["contact@yellowcompany.de"] + }, + "phone": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the representative of the third party (recipient).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 9876"] + } + } + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", + "type": "string", + "title": "Category", + "description": "The category of the the recipient.", + "examples": ["Marketing content provider"] + } + }, + "required": ["category"] + }, + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", + "title": "Second anyOf", + "examples": [ + { "category": "Responsible Statistical Institutes" } + ], + "properties": { + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", + "type": "string", + "title": "Category", + "description": "This category has to be given, even if the controller is not mentioned explicitly.", + "examples": ["Responsible Statistical Institutes"] + } + }, + "required": ["category"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", + "type": "object" + } + }, + "storage": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", + "type": "array", + "title": "Storage", + "description": "In this section, the duration of storage or storage criteria are given.", + "examples": [ + [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "properties": { + "temporal": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", + "type": "array", + "title": "Temporal", + "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", + "examples": [ + [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "properties": { + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "The description why the data has to be stored..", + "examples": ["Creating backups."] + }, + "ttl": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", + "type": "string", + "title": "Ttl", + "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", + "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", + "examples": [ + "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + ] + } + }, + "required": ["description", "ttl"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", + "type": "object" + } + }, + "purposeConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", + "type": "array", + "title": "PurposeConditional", + "description": "Specifies the purpose that requires data storage.", + "examples": [ + [ + "Data is stored until the end of the ordering process." + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + "Data is stored until the end of the ordering process." + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", + "type": "string" + } + }, + "legalBasisConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", + "type": "array", + "title": "LegalBasisConditional", + "description": "If the storage is required by law, the respective one has to specified in here.", + "examples": [["SGB-100-42"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", + "title": "First anyOf", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["SGB-100-42"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", + "type": "string" + } + }, + "aggregationFunction": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", + "type": "string", + "title": "AggregationFunction", + "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", + "default": "max", + "enum": ["min", "max", "sum", "avg"], + "examples": ["max"] + } + }, + "required": ["aggregationFunction"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", + "type": "object" + } + }, + "nonDisclosure": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", + "type": "object", + "title": "NonDisclosure", + "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", + "examples": [ + { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + ], + "required": [ + "legalRequirement", + "contractualRegulation", + "obligationToProvide", + "consequences" + ], + "properties": { + "legalRequirement": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", + "type": "boolean", + "title": "LegalRequirement", + "description": "Is there a legal requirement to collect these data?", + "default": false, + "examples": [false, true] + }, + "contractualRegulation": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", + "type": "boolean", + "title": "ContractualRegulation", + "description": "Is there a contractual regulation to collect these data?", + "default": false, + "examples": [false, true] + }, + "obligationToProvide": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", + "type": "boolean", + "title": "ObligationToProvide", + "description": "Is there an obligation for the data subject to provide these data?", + "default": false, + "examples": [false, true] + }, + "consequences": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", + "type": "string", + "title": "Consequences", + "description": "Description of the consequences in the case of non-disclosure.", + "examples": [ + "If the data is not disclosed, the shipment cannot be delivered." + ] + } + } + } + }, + "required": [ + "_id", + "category", + "purposes", + "legalBases", + "legitimateInterests", + "recipients", + "storage", + "nonDisclosure" + ] + } + ], + "$id": "#/properties/dataDisclosed/items", + "type": "object" + } + }, + "thirdCountryTransfers": { + "$id": "#/properties/thirdCountryTransfers", + "type": "array", + "title": "ThirdCountryTransfers", + "description": "This schema refers to the adequacy decisions of any third country transfers.", + "examples": [ + [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "properties": { + "country": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country code of the third country.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "adequacyDecision": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", + "type": "object", + "title": "AdequacyDecision", + "examples": [ + { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", + "type": "boolean", + "title": "Available", + "description": "Adequacy decision by the European commission exists?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the adequacy decision by the European commission.", + "examples": [ + "An adequacy decision was made on the 23rd April 2020 by..." + ] + } + } + }, + "appropriateGuarantees": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", + "type": "object", + "title": "AppropriateGuarantees", + "description": "Suitable guarantees according to Art. 45", + "examples": [ + { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", + "type": "boolean", + "title": "Available", + "description": "Do suitable guarantees according to Art. 45 exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", + "type": "string", + "title": "Description", + "description": "Description of suitable guarantees according to Art. 45", + "examples": [ + "Here the appropriate guarantee was formulated by..." + ] + } + } + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", + "type": "object", + "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", + "description": "Presence of enforceable rights and effective remedies", + "examples": [ + { + "available": true, + "description": "These rights are given because of..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", + "type": "boolean", + "title": "Available", + "description": "Presence of enforceable rights and effective remedies?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", + "type": "string", + "title": "Description", + "description": "Description of enforceable rights and effective remedies.", + "examples": ["These rights are given because of..."] + } + } + }, + "standardDataProtectionClause": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", + "type": "object", + "title": "StandardDataProtectionClause", + "description": "Schema on Standard Data Protection clauses.", + "examples": [ + { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", + "type": "boolean", + "title": "Available", + "description": "Does a standard data protection clause exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the standard data protection clause (may include link).", + "examples": [ + "The standard data protection clause which applies here can be found here: ..." + ] + } + } + } + } + } + ], + "$id": "#/properties/thirdCountryTransfers/items", + "type": "object" + } + }, + "accessAndDataPortability": { + "$id": "#/properties/accessAndDataPortability", + "type": "object", + "title": "AccessAndDataPortability", + "description": "Defining the right to access and data portability.", + "examples": [ + { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + } + ], + "required": ["available"], + "properties": { + "available": { + "$id": "#/properties/accessAndDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/accessAndDataPortability/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the requirements according to Art. 20 GDPR.", + "examples": [ + "Data access is possible through...", + "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." + ] + }, + "url": { + "$id": "#/properties/accessAndDataPortability/properties/url", + "type": "string", + "title": "Url", + "description": "URL to relevant resources such as access portals.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/access"] + }, + "email": { + "$id": "#/properties/accessAndDataPortability/properties/email", + "type": "string", + "title": "Email", + "description": "Contact email address", + "format": "email", + "examples": ["access@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "description": "ID evidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", + "type": "string" + } + }, + "administrativeFee": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", + "type": "object", + "title": "AdministrativeFee", + "description": "The fee that refers to several copies.", + "examples": [{ "amount": 0, "currency": "EUR" }], + "properties": { + "amount": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", + "type": "number", + "title": "Amount", + "description": "The amount of money to be paid for a copy.", + "default": 0, + "examples": [0] + }, + "currency": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", + "type": "string", + "title": "Currency", + "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", + "default": "EUR", + "minLength": 3, + "maxLength": 3, + "examples": ["EUR"] + } + }, + "required": ["amount", "currency"] + }, + "dataFormats": { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats", + "type": "array", + "title": "DataFormat", + "description": "An explanation about the data format(s) the data is provided in.", + "default": ["json"], + "examples": ["json", "xml"], + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", + "title": "First anyOf", + "examples": ["json", "xml"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", + "type": "string" + } + } + } + }, + "sources": { + "$id": "#/properties/sources", + "type": "array", + "title": "Sources", + "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", + "examples": [ + [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "properties": { + "_id": { + "$id": "#/properties/sources/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", + "examples": ["f1423cc00509931"] + }, + "dataCategory": { + "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", + "type": "string", + "title": "DataCategory", + "description": "The category the data refer to.", + "examples": ["Creditworthiness"] + }, + "sources": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources", + "type": "array", + "title": "Sources", + "description": "Specify the source(s) where the data come from.", + "examples": [ + [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ], + "properties": { + "description": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the source the data is taken from.", + "examples": [ + "This information could be retrieved from..." + ] + }, + "url": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", + "type": "string", + "title": "Url", + "description": "URL (reference) where the data is taken from.", + "format": "uri-reference", + "examples": ["https://blueCompany.org"] + }, + "publiclyAvailable": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", + "type": "boolean", + "title": "PubliclyAvailable", + "description": "Are these data publicly available?", + "default": false, + "examples": [false, true] + } + }, + "required": ["description", "url", "publiclyAvailable"] + } + ], + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", + "type": "object" + } + } + }, + "required": ["_id", "dataCategory", "sources"] + } + ], + "$id": "#/properties/sources/items", + "type": "object" + } + }, + "rightToInformation": { + "$id": "#/properties/rightToInformation", + "type": "object", + "title": "RightToInformation", + "description": "Refers to the right of information.", + "examples": [ + { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToInformation/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/rightToInformation/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the right.", + "examples": [ + "For the right to information please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToInformation/properties/url", + "type": "string", + "title": "Url", + "description": "URL to an online portal.", + "format": "uri-reference", + "examples": ["https://greencompany.org/rightToInformation"] + }, + "email": { + "$id": "#/properties/rightToInformation/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToInformation/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToRectificationOrDeletion": { + "$id": "#/properties/rightToRectificationOrDeletion", + "type": "object", + "title": "RightToRectificationOrDeletion", + "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", + "examples": [ + { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to rectification please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToDataPortability": { + "$id": "#/properties/rightToDataPortability", + "type": "object", + "title": "RightToDataPortability", + "description": "The right to data portability as stated in Art. 20 GDPR.", + "examples": [ + { + "available": true, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [false, true] + }, + "description": { + "$id": "#/properties/rightToDataPortability/properties/description", + "type": "string", + "title": "Description", + "examples": ["Data portability is only possible when..."] + }, + "url": { + "$id": "#/properties/rightToDataPortability/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToDataPortability/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy"] + } + ], + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToWithdrawConsent": { + "$id": "#/properties/rightToWithdrawConsent", + "type": "object", + "title": "RightToWithdrawConsent", + "description": "This schema refers to the right to withdraw consent.", + "examples": [ + { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToWithdrawConsent/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToWithdrawConsent/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to withdraw consent please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToWithdrawConsent/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToWithdrawConsent/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email verification"] + } + ], + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToComplain": { + "$id": "#/properties/rightToComplain", + "type": "object", + "title": "RightToComplain", + "description": "This schema refers to the right to complain.", + "examples": [ + { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description", "supervisoryAuthority"] }, + "properties": { + "available": { + "$id": "#/properties/rightToComplain/properties/available", + "type": "boolean", + "title": "Available", + "description": "Is this right available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToComplain/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to complain please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToComplain/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToComplain/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", + "type": "string" + } + }, + "supervisoryAuthority": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", + "type": "object", + "title": "SupervisoryAuthority", + "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", + "examples": [ + { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + ], + "properties": { + "name": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the supervisory authority.", + "examples": ["Commissioner for Data Protection"] + }, + "address": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", + "type": "string", + "title": "Address", + "description": "Adress of the supervisory authority.", + "examples": ["Friedrichstrasse 219, 10969 Berlin"] + }, + "country": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", + "type": "string", + "title": "Country", + "description": "Country of the supervisory authority.", + "minLength": 2, + "maxLength": 2, + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", + "type": "string", + "title": "Email", + "description": "Email adress of the supervisory authority.", + "format": "email", + "examples": ["mailbox@privacy-berlin.de"] + }, + "phone": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the supervisory authority.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 444 222 111"] + } + }, + "required": ["name"] + } + } + }, + "automatedDecisionMaking": { + "$id": "#/properties/automatedDecisionMaking", + "type": "object", + "title": "AutomatedDecisionMaking", + "description": "Automated decision making and potentially involved logic. Does include profiling.", + "examples": [ + { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + } + ], + "if": { + "properties": { "inUse": { "const": true } }, + "required": ["inUse"] + }, + "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, + "properties": { + "inUse": { + "$id": "#/properties/automatedDecisionMaking/properties/inUse", + "type": "boolean", + "title": "InUse", + "description": "Is automated decision making in use?", + "default": true, + "examples": [true, false] + }, + "logicInvolved": { + "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", + "type": "string", + "title": "LogicInvolved", + "description": "An explanation about the logic involved to automated decision making.", + "examples": ["The personal data are processed as follows..."] + }, + "scopeAndIntendedEffects": { + "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", + "type": "string", + "title": "ScopeAndIntendedEffects", + "description": "Scope and intended effects of such processing for the data subject.", + "examples": ["From processing follows..."] + } + } + }, + "changesOfPurpose": { + "$id": "#/properties/changesOfPurpose", + "type": "array", + "title": "ChangesOfPurpose", + "description": "Notification of change of purpose.", + "examples": [ + [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ], + "properties": { + "description": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the change of purpose.", + "examples": ["Due to technical requirements..."] + }, + "affectedDataCategories": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", + "type": "array", + "title": "AffectedDataCategories", + "description": "Data categories that are affected from the change of purpose.", + "examples": [["Email adress", "Credit score"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email adress", "Credit score"] + } + ], + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", + "type": "string" + } + }, + "plannedDateOfChange": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", + "type": "string", + "title": "PlannedDateOfChange", + "description": "Specify the planned date to the changes as ISO 8601 string.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-08-20"] + }, + "urlOfNewVersion": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", + "type": "string", + "title": "UrlOfNewVersion", + "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", + "examples": ["https://greencomp.de/tilt/2"] + } + } + } + ], + "$id": "#/properties/changesOfPurpose/items", + "type": "object" + } + } + }, + "required": [ + "meta", + "controller", + "dataProtectionOfficer", + "dataDisclosed", + "thirdCountryTransfers", + "accessAndDataPortability", + "sources", + "rightToInformation", + "rightToRectificationOrDeletion", + "rightToDataPortability", + "rightToWithdrawConsent", + "rightToComplain", + "automatedDecisionMaking", + "changesOfPurpose" + ] +} From ab3f8f1faf5031eda80e0241e9babdf12b3f316b Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 22 Mar 2023 11:54:44 +0100 Subject: [PATCH 59/80] small updates. build example generator (not fully working) --- .github/workflows/main.yaml | 4 ++-- combined.json | 6 +++--- example-generator.ipynb | 0 tilt_schema/properties/00_meta.json | 2 +- tilt_schema/recompile.py | 11 +++++++++-- tilt_schema/split.ipynb | 17 +++++++++++++++++ 6 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 example-generator.ipynb diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 638c8c8..990ac18 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -12,7 +12,7 @@ on: jobs: - run: + reconstruct: runs-on: ubuntu-latest steps: @@ -34,7 +34,7 @@ jobs: git commit --allow-empty -m "combined the file" git push - prettier: + prettify: needs: run runs-on: ubuntu-latest diff --git a/combined.json b/combined.json index f5a99a2..606ae80 100644 --- a/combined.json +++ b/combined.json @@ -10,7 +10,7 @@ "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", + "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", @@ -214,7 +214,7 @@ "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", + "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", @@ -262,7 +262,7 @@ "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15: 53: 05.929588"] + "examples": ["2020-04-03T15:53:05.929588"] }, "version": { "$id": "#/properties/meta/properties/version", diff --git a/example-generator.ipynb b/example-generator.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/tilt_schema/properties/00_meta.json b/tilt_schema/properties/00_meta.json index 2ea6368..9dc4915 100644 --- a/tilt_schema/properties/00_meta.json +++ b/tilt_schema/properties/00_meta.json @@ -1 +1 @@ -{"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15: 53: 05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}} \ No newline at end of file +{"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}} \ No newline at end of file diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index 830de1a..a2d2c5b 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -4,10 +4,17 @@ def reconstruct(): import glob """ - func: Constructs the tilt-schema out of a number of constituent parts. + func: Constructs the tilt-schema out of a number of constituent parts. + + requires: A directory called tilt_schema with files that combined make up the entire tile + Files are at best named in a way that preserves the order of a tilt document. + There also needs to be a subdirectory called properties that includes the substantial parts of the tilt document. + There is no single json file called properties as it is deleted whenever the subfolder is established. + All changes to the tilt should be made in the lowest-level of the directory possible. + returns: A fully constructed tilt-schema document. """ - print(os.getcwd()) + #print(os.getcwd()) os.chdir('tilt_schema/') diff --git a/tilt_schema/split.ipynb b/tilt_schema/split.ipynb index 5af8e67..2c64ce6 100644 --- a/tilt_schema/split.ipynb +++ b/tilt_schema/split.ipynb @@ -1,5 +1,22 @@ { "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Split.ipynb\n", + "\n", + "Splits up the tilt-schema json into its constituent parts. \n", + "It further moves the properties section of the tilt into another subdirectory and splits it again. \n", + "\n", + "You should only execute the cells in this notebook if you want to definitely overwrite the files that are in the tilt_schema directory. \n", + "\n", + "These files are used by the GitHub action in main.yaml to reconstruct the tilt. \n", + "\n", + "This decomposition was made for easier readability and tractability of the tilt-schema" + ] + }, { "cell_type": "code", "execution_count": 184, From 304471dfd7b97633ee1c4d51cdf7d0bcce3a38f1 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 22 Mar 2023 11:56:11 +0100 Subject: [PATCH 60/80] small naming fix in yaml --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 990ac18..cc2d29a 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -35,7 +35,7 @@ jobs: git push prettify: - needs: run + needs: reconstruct runs-on: ubuntu-latest steps: From c9e1d4be93e79220d9b9bf1850e912d27faa3c7c Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 22 Mar 2023 10:56:38 +0000 Subject: [PATCH 61/80] combined the file --- combined.json | 2193 +------------------------------------------------ 1 file changed, 1 insertion(+), 2192 deletions(-) diff --git a/combined.json b/combined.json index 606ae80..e8990e9 100644 --- a/combined.json +++ b/combined.json @@ -1,2192 +1 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/Transparency-Information-Language/schema", - "type": "object", - "title": "Root schema of a Transparency Information Language", - "description": "This schema defines the Transparency Information Language", - "examples": [ - { - "meta": { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15:53:05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - }, - "controller": { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - }, - "dataProtectionOfficer": { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "dataDisclosed": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "thirdCountryTransfers": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "accessAndDataPortability": { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - }, - "sources": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "rightToInformation": { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToRectificationOrDeletion": { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToDataPortability": { - "available": false, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - }, - "rightToWithdrawConsent": { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - }, - "rightToComplain": { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - }, - "automatedDecisionMaking": { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - }, - "changesOfPurpose": [ - { - "description": "Due to techncial requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - } - ], - "properties": { - "meta": { - "$id": "#/properties/meta", - "type": "object", - "title": "Meta", - "description": "Meta information for the identification and verification of the document.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15:53:05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - } - ], - "required": [ - "_id", - "name", - "created", - "modified", - "version", - "language", - "status", - "url", - "_hash" - ], - "properties": { - "_id": { - "$id": "#/properties/meta/properties/_id", - "type": "string", - "title": "_id", - "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "name": { - "$id": "#/properties/meta/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the data controller.", - "examples": ["Green Company"] - }, - "created": { - "$id": "#/properties/meta/properties/created", - "type": "string", - "title": "Created", - "description": "Creation date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "modified": { - "$id": "#/properties/meta/properties/modified", - "type": "string", - "title": "Modified", - "description": "Last modified date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "version": { - "$id": "#/properties/meta/properties/version", - "type": "integer", - "title": "Version", - "description": "This number serves to version documents of a controller.", - "default": 1, - "minimum": 1, - "examples": [2] - }, - "language": { - "$id": "#/properties/meta/properties/language", - "type": "string", - "title": "Language", - "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", - "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", - "default": "en", - "examples": ["de"] - }, - "status": { - "$id": "#/properties/meta/properties/status", - "type": "string", - "title": "Status", - "description": "The status of an instance can be active or inactive depending on the policy's legal force.", - "default": "active", - "pattern": "^(active|inactive)$", - "examples": ["active", "inactive"] - }, - "url": { - "$id": "#/properties/meta/properties/url", - "type": "string", - "title": "Url", - "description": "URL to this schema.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/privacy"] - }, - "_hash": { - "$id": "#/properties/meta/properties/_hash", - "type": "string", - "title": "_hash", - "description": "The hash is based on one SHA256 calculation of the document.", - "minLength": 64, - "maxLength": 64, - "examples": [ - "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" - ] - } - } - }, - "controller": { - "$id": "#/properties/controller", - "type": "object", - "title": "Controller", - "description": "The responsible controller is defined in here.", - "examples": [ - { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "sector": "J" - } - ], - "required": ["name", "address", "country", "representative"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller.", - "examples": ["Green Company AG"] - }, - "division": { - "$id": "#/properties/controller/properties/division", - "type": "string", - "title": "Division", - "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/controller/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the controller.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/controller/properties/country", - "type": "string", - "title": "Country", - "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", - "default": "DE", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "representative": { - "$id": "#/properties/controller/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative is a responsible real person that represents the controller.", - "examples": [ - { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "email"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller's representative.", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/controller/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "Email address of the controller's representative.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/controller/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the controller's representative.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["+49 151 1234 5678"] - } - } - }, - "sector": { - "$id": "#/properties/controller/properties/sector", - "type": "string", - "description": "The industry of the controller according to UN ISIC Rev. 4", - "example": "J", - "maxLength": 1, - "pattern": "[A-Z]" - } - } - }, - "dataProtectionOfficer": { - "$id": "#/properties/dataProtectionOfficer", - "type": "object", - "title": "DataProtectionOfficer", - "description": "The Data Protection Officer (DPO) of the controller.", - "examples": [ - { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "address", "country", "email"], - "properties": { - "name": { - "$id": "#/properties/dataProtectionOfficer/properties/name", - "type": "string", - "title": "Name", - "description": "The full name of the Data Protection Officer.", - "examples": ["Jane Super"] - }, - "address": { - "$id": "#/properties/dataProtectionOfficer/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the DPO.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/dataProtectionOfficer/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the Data Protection officer is located at.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/dataProtectionOfficer/properties/email", - "type": "string", - "title": "Email", - "description": "The contact email address of the Data Protection Officer.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/dataProtectionOfficer/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the Data Protection Officer (may include country prefix).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 5678"] - } - } - }, - "dataDisclosed": { - "$id": "#/properties/dataDisclosed", - "type": "array", - "title": "DataDisclosed", - "description": "A detailed explanation about which data is disclosed in the processing tasks.", - "examples": [ - [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0", - "title": "AnyOf schema", - "description": "The description of data disclosed.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "properties": { - "_id": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", - "type": "array", - "title": "Category", - "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": ["E-mail address"], - "items": { "type": "string" } - }, - "purposes": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", - "type": "array", - "title": "Purposes", - "description": "The purpose for which a data item is processed for.", - "examples": [ - [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", - "title": "AnyOf schema for the purposes.", - "examples": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "properties": { - "purpose": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", - "type": "string", - "title": "Purpose", - "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": ["Marketing"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "This schema refers to an exact description of the purpose the data is processed for.", - "examples": [ - "Newsletter will be sent out once a month." - ] - } - }, - "required": ["purpose", "description"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", - "type": "object" - } - }, - "legalBases": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", - "type": "array", - "title": "LegalBases", - "description": "An explanation about the legal bases for the processing of personal data disclosed.", - "examples": [ - [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", - "title": "AnyOf schema for the legal bases of the data disclosed.", - "examples": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - } - ], - "properties": { - "reference": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", - "type": "string", - "title": "Reference", - "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["GDPR-99-1-a"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the legal basis used.", - "examples": [ - "The data are processed on the basis of Art. 99 GDPR which states..." - ] - } - }, - "required": ["reference"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", - "type": "object" - } - }, - "legitimateInterests": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", - "type": "array", - "title": "LegitimateInterests", - "description": "An explanation about the legitimate interests for the processing of data disclosed.", - "examples": [ - [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", - "title": "AnyOf schema for legitimate interests.", - "examples": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "if": { - "properties": { "exists": { "const": true } }, - "required": ["exists"] - }, - "then": { "required": ["reasoning"] }, - "properties": { - "exists": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", - "type": "boolean", - "title": "Exists", - "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", - "default": false, - "examples": [true, false] - }, - "reasoning": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", - "type": "string", - "title": "Reasoning", - "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", - "examples": [ - "There is an legitimate interest based on ... and is not overwritten because ..." - ] - } - } - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", - "type": "object" - } - }, - "recipients": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", - "type": "array", - "title": "Recipients", - "description": "An explanation about the recipients of the data disclosed.", - "examples": [ - [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", - "title": "AnyOf schema if recipients", - "examples": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the third party (recipient).", - "examples": ["Yellow Company AG"] - }, - "division": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", - "type": "string", - "title": "Division", - "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", - "type": "string", - "title": "Address", - "description": "The address of the third party (recipient).", - "examples": ["Triana 123, 9999 Seville"] - }, - "country": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "representative": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative of the third party (recipient).", - "examples": [ - { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the representative of the third party (recipient).", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "The email address of the representative of the third party (recipient).", - "format": "email", - "examples": ["contact@yellowcompany.de"] - }, - "phone": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the representative of the third party (recipient).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 9876"] - } - } - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", - "type": "string", - "title": "Category", - "description": "The category of the the recipient.", - "examples": ["Marketing content provider"] - } - }, - "required": ["category"] - }, - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", - "title": "Second anyOf", - "examples": [ - { "category": "Responsible Statistical Institutes" } - ], - "properties": { - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", - "type": "string", - "title": "Category", - "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": ["Responsible Statistical Institutes"] - } - }, - "required": ["category"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", - "type": "object" - } - }, - "storage": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", - "type": "array", - "title": "Storage", - "description": "In this section, the duration of storage or storage criteria are given.", - "examples": [ - [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "properties": { - "temporal": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", - "type": "array", - "title": "Temporal", - "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", - "examples": [ - [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "properties": { - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "The description why the data has to be stored..", - "examples": ["Creating backups."] - }, - "ttl": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", - "type": "string", - "title": "Ttl", - "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", - "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", - "examples": [ - "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - ] - } - }, - "required": ["description", "ttl"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", - "type": "object" - } - }, - "purposeConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", - "type": "array", - "title": "PurposeConditional", - "description": "Specifies the purpose that requires data storage.", - "examples": [ - [ - "Data is stored until the end of the ordering process." - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - "Data is stored until the end of the ordering process." - ] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", - "type": "string" - } - }, - "legalBasisConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", - "type": "array", - "title": "LegalBasisConditional", - "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [["SGB-100-42"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", - "title": "First anyOf", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["SGB-100-42"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", - "type": "string" - } - }, - "aggregationFunction": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", - "type": "string", - "title": "AggregationFunction", - "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", - "default": "max", - "enum": ["min", "max", "sum", "avg"], - "examples": ["max"] - } - }, - "required": ["aggregationFunction"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", - "type": "object" - } - }, - "nonDisclosure": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", - "type": "object", - "title": "NonDisclosure", - "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", - "examples": [ - { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - ], - "required": [ - "legalRequirement", - "contractualRegulation", - "obligationToProvide", - "consequences" - ], - "properties": { - "legalRequirement": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", - "type": "boolean", - "title": "LegalRequirement", - "description": "Is there a legal requirement to collect these data?", - "default": false, - "examples": [false, true] - }, - "contractualRegulation": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", - "type": "boolean", - "title": "ContractualRegulation", - "description": "Is there a contractual regulation to collect these data?", - "default": false, - "examples": [false, true] - }, - "obligationToProvide": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", - "type": "boolean", - "title": "ObligationToProvide", - "description": "Is there an obligation for the data subject to provide these data?", - "default": false, - "examples": [false, true] - }, - "consequences": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", - "type": "string", - "title": "Consequences", - "description": "Description of the consequences in the case of non-disclosure.", - "examples": [ - "If the data is not disclosed, the shipment cannot be delivered." - ] - } - } - } - }, - "required": [ - "_id", - "category", - "purposes", - "legalBases", - "legitimateInterests", - "recipients", - "storage", - "nonDisclosure" - ] - } - ], - "$id": "#/properties/dataDisclosed/items", - "type": "object" - } - }, - "thirdCountryTransfers": { - "$id": "#/properties/thirdCountryTransfers", - "type": "array", - "title": "ThirdCountryTransfers", - "description": "This schema refers to the adequacy decisions of any third country transfers.", - "examples": [ - [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "properties": { - "country": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country code of the third country.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "adequacyDecision": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", - "type": "object", - "title": "AdequacyDecision", - "examples": [ - { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", - "type": "boolean", - "title": "Available", - "description": "Adequacy decision by the European commission exists?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the adequacy decision by the European commission.", - "examples": [ - "An adequacy decision was made on the 23rd April 2020 by..." - ] - } - } - }, - "appropriateGuarantees": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", - "type": "object", - "title": "AppropriateGuarantees", - "description": "Suitable guarantees according to Art. 45", - "examples": [ - { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", - "type": "boolean", - "title": "Available", - "description": "Do suitable guarantees according to Art. 45 exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", - "type": "string", - "title": "Description", - "description": "Description of suitable guarantees according to Art. 45", - "examples": [ - "Here the appropriate guarantee was formulated by..." - ] - } - } - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", - "type": "object", - "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", - "description": "Presence of enforceable rights and effective remedies", - "examples": [ - { - "available": true, - "description": "These rights are given because of..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", - "type": "boolean", - "title": "Available", - "description": "Presence of enforceable rights and effective remedies?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", - "type": "string", - "title": "Description", - "description": "Description of enforceable rights and effective remedies.", - "examples": ["These rights are given because of..."] - } - } - }, - "standardDataProtectionClause": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", - "type": "object", - "title": "StandardDataProtectionClause", - "description": "Schema on Standard Data Protection clauses.", - "examples": [ - { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", - "type": "boolean", - "title": "Available", - "description": "Does a standard data protection clause exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the standard data protection clause (may include link).", - "examples": [ - "The standard data protection clause which applies here can be found here: ..." - ] - } - } - } - } - } - ], - "$id": "#/properties/thirdCountryTransfers/items", - "type": "object" - } - }, - "accessAndDataPortability": { - "$id": "#/properties/accessAndDataPortability", - "type": "object", - "title": "AccessAndDataPortability", - "description": "Defining the right to access and data portability.", - "examples": [ - { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - } - ], - "required": ["available"], - "properties": { - "available": { - "$id": "#/properties/accessAndDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/accessAndDataPortability/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the requirements according to Art. 20 GDPR.", - "examples": [ - "Data access is possible through...", - "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." - ] - }, - "url": { - "$id": "#/properties/accessAndDataPortability/properties/url", - "type": "string", - "title": "Url", - "description": "URL to relevant resources such as access portals.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/access"] - }, - "email": { - "$id": "#/properties/accessAndDataPortability/properties/email", - "type": "string", - "title": "Email", - "description": "Contact email address", - "format": "email", - "examples": ["access@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "description": "ID evidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", - "type": "string" - } - }, - "administrativeFee": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", - "type": "object", - "title": "AdministrativeFee", - "description": "The fee that refers to several copies.", - "examples": [{ "amount": 0, "currency": "EUR" }], - "properties": { - "amount": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", - "type": "number", - "title": "Amount", - "description": "The amount of money to be paid for a copy.", - "default": 0, - "examples": [0] - }, - "currency": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", - "type": "string", - "title": "Currency", - "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", - "default": "EUR", - "minLength": 3, - "maxLength": 3, - "examples": ["EUR"] - } - }, - "required": ["amount", "currency"] - }, - "dataFormats": { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats", - "type": "array", - "title": "DataFormat", - "description": "An explanation about the data format(s) the data is provided in.", - "default": ["json"], - "examples": ["json", "xml"], - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", - "title": "First anyOf", - "examples": ["json", "xml"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", - "type": "string" - } - } - } - }, - "sources": { - "$id": "#/properties/sources", - "type": "array", - "title": "Sources", - "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", - "examples": [ - [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "properties": { - "_id": { - "$id": "#/properties/sources/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": ["f1423cc00509931"] - }, - "dataCategory": { - "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", - "type": "string", - "title": "DataCategory", - "description": "The category the data refer to.", - "examples": ["Creditworthiness"] - }, - "sources": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources", - "type": "array", - "title": "Sources", - "description": "Specify the source(s) where the data come from.", - "examples": [ - [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ], - "properties": { - "description": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the source the data is taken from.", - "examples": [ - "This information could be retrieved from..." - ] - }, - "url": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", - "type": "string", - "title": "Url", - "description": "URL (reference) where the data is taken from.", - "format": "uri-reference", - "examples": ["https://blueCompany.org"] - }, - "publiclyAvailable": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", - "type": "boolean", - "title": "PubliclyAvailable", - "description": "Are these data publicly available?", - "default": false, - "examples": [false, true] - } - }, - "required": ["description", "url", "publiclyAvailable"] - } - ], - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", - "type": "object" - } - } - }, - "required": ["_id", "dataCategory", "sources"] - } - ], - "$id": "#/properties/sources/items", - "type": "object" - } - }, - "rightToInformation": { - "$id": "#/properties/rightToInformation", - "type": "object", - "title": "RightToInformation", - "description": "Refers to the right of information.", - "examples": [ - { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToInformation/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/rightToInformation/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the right.", - "examples": [ - "For the right to information please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToInformation/properties/url", - "type": "string", - "title": "Url", - "description": "URL to an online portal.", - "format": "uri-reference", - "examples": ["https://greencompany.org/rightToInformation"] - }, - "email": { - "$id": "#/properties/rightToInformation/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToInformation/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToRectificationOrDeletion": { - "$id": "#/properties/rightToRectificationOrDeletion", - "type": "object", - "title": "RightToRectificationOrDeletion", - "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", - "examples": [ - { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to rectification please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToDataPortability": { - "$id": "#/properties/rightToDataPortability", - "type": "object", - "title": "RightToDataPortability", - "description": "The right to data portability as stated in Art. 20 GDPR.", - "examples": [ - { - "available": true, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [false, true] - }, - "description": { - "$id": "#/properties/rightToDataPortability/properties/description", - "type": "string", - "title": "Description", - "examples": ["Data portability is only possible when..."] - }, - "url": { - "$id": "#/properties/rightToDataPortability/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToDataPortability/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy"] - } - ], - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToWithdrawConsent": { - "$id": "#/properties/rightToWithdrawConsent", - "type": "object", - "title": "RightToWithdrawConsent", - "description": "This schema refers to the right to withdraw consent.", - "examples": [ - { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToWithdrawConsent/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToWithdrawConsent/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to withdraw consent please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToWithdrawConsent/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToWithdrawConsent/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email verification"] - } - ], - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToComplain": { - "$id": "#/properties/rightToComplain", - "type": "object", - "title": "RightToComplain", - "description": "This schema refers to the right to complain.", - "examples": [ - { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description", "supervisoryAuthority"] }, - "properties": { - "available": { - "$id": "#/properties/rightToComplain/properties/available", - "type": "boolean", - "title": "Available", - "description": "Is this right available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToComplain/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to complain please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToComplain/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToComplain/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", - "type": "string" - } - }, - "supervisoryAuthority": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", - "type": "object", - "title": "SupervisoryAuthority", - "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", - "examples": [ - { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - ], - "properties": { - "name": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the supervisory authority.", - "examples": ["Commissioner for Data Protection"] - }, - "address": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", - "type": "string", - "title": "Address", - "description": "Adress of the supervisory authority.", - "examples": ["Friedrichstrasse 219, 10969 Berlin"] - }, - "country": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", - "type": "string", - "title": "Country", - "description": "Country of the supervisory authority.", - "minLength": 2, - "maxLength": 2, - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", - "type": "string", - "title": "Email", - "description": "Email adress of the supervisory authority.", - "format": "email", - "examples": ["mailbox@privacy-berlin.de"] - }, - "phone": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the supervisory authority.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 444 222 111"] - } - }, - "required": ["name"] - } - } - }, - "automatedDecisionMaking": { - "$id": "#/properties/automatedDecisionMaking", - "type": "object", - "title": "AutomatedDecisionMaking", - "description": "Automated decision making and potentially involved logic. Does include profiling.", - "examples": [ - { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - } - ], - "if": { - "properties": { "inUse": { "const": true } }, - "required": ["inUse"] - }, - "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, - "properties": { - "inUse": { - "$id": "#/properties/automatedDecisionMaking/properties/inUse", - "type": "boolean", - "title": "InUse", - "description": "Is automated decision making in use?", - "default": true, - "examples": [true, false] - }, - "logicInvolved": { - "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", - "type": "string", - "title": "LogicInvolved", - "description": "An explanation about the logic involved to automated decision making.", - "examples": ["The personal data are processed as follows..."] - }, - "scopeAndIntendedEffects": { - "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", - "type": "string", - "title": "ScopeAndIntendedEffects", - "description": "Scope and intended effects of such processing for the data subject.", - "examples": ["From processing follows..."] - } - } - }, - "changesOfPurpose": { - "$id": "#/properties/changesOfPurpose", - "type": "array", - "title": "ChangesOfPurpose", - "description": "Notification of change of purpose.", - "examples": [ - [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ], - "properties": { - "description": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the change of purpose.", - "examples": ["Due to technical requirements..."] - }, - "affectedDataCategories": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", - "type": "array", - "title": "AffectedDataCategories", - "description": "Data categories that are affected from the change of purpose.", - "examples": [["Email adress", "Credit score"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email adress", "Credit score"] - } - ], - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", - "type": "string" - } - }, - "plannedDateOfChange": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", - "type": "string", - "title": "PlannedDateOfChange", - "description": "Specify the planned date to the changes as ISO 8601 string.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-08-20"] - }, - "urlOfNewVersion": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", - "type": "string", - "title": "UrlOfNewVersion", - "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": ["https://greencomp.de/tilt/2"] - } - } - } - ], - "$id": "#/properties/changesOfPurpose/items", - "type": "object" - } - } - }, - "required": [ - "meta", - "controller", - "dataProtectionOfficer", - "dataDisclosed", - "thirdCountryTransfers", - "accessAndDataPortability", - "sources", - "rightToInformation", - "rightToRectificationOrDeletion", - "rightToDataPortability", - "rightToWithdrawConsent", - "rightToComplain", - "automatedDecisionMaking", - "changesOfPurpose" - ] -} +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From f32bb2b98a44eeb21f5351ccf9679ba5bce8b56f Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 22 Mar 2023 10:56:56 +0000 Subject: [PATCH 62/80] Prettified Code! --- combined.json | 2193 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 2192 insertions(+), 1 deletion(-) diff --git a/combined.json b/combined.json index e8990e9..3c6236e 100644 --- a/combined.json +++ b/combined.json @@ -1 +1,2192 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/Transparency-Information-Language/schema", + "type": "object", + "title": "Root schema of a Transparency Information Language", + "description": "This schema defines the Transparency Information Language", + "examples": [ + { + "meta": { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + }, + "controller": { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + }, + "dataProtectionOfficer": { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "dataDisclosed": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": ["E-mail address"], + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "thirdCountryTransfers": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "accessAndDataPortability": { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + }, + "sources": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "rightToInformation": { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToRectificationOrDeletion": { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToDataPortability": { + "available": false, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + }, + "rightToWithdrawConsent": { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + }, + "rightToComplain": { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + }, + "automatedDecisionMaking": { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + }, + "changesOfPurpose": [ + { + "description": "Due to techncial requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + } + ], + "properties": { + "meta": { + "$id": "#/properties/meta", + "type": "object", + "title": "Meta", + "description": "Meta information for the identification and verification of the document.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15:53:05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + } + ], + "required": [ + "_id", + "name", + "created", + "modified", + "version", + "language", + "status", + "url", + "_hash" + ], + "properties": { + "_id": { + "$id": "#/properties/meta/properties/_id", + "type": "string", + "title": "_id", + "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "name": { + "$id": "#/properties/meta/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the data controller.", + "examples": ["Green Company"] + }, + "created": { + "$id": "#/properties/meta/properties/created", + "type": "string", + "title": "Created", + "description": "Creation date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "modified": { + "$id": "#/properties/meta/properties/modified", + "type": "string", + "title": "Modified", + "description": "Last modified date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "version": { + "$id": "#/properties/meta/properties/version", + "type": "integer", + "title": "Version", + "description": "This number serves to version documents of a controller.", + "default": 1, + "minimum": 1, + "examples": [2] + }, + "language": { + "$id": "#/properties/meta/properties/language", + "type": "string", + "title": "Language", + "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", + "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", + "default": "en", + "examples": ["de"] + }, + "status": { + "$id": "#/properties/meta/properties/status", + "type": "string", + "title": "Status", + "description": "The status of an instance can be active or inactive depending on the policy's legal force.", + "default": "active", + "pattern": "^(active|inactive)$", + "examples": ["active", "inactive"] + }, + "url": { + "$id": "#/properties/meta/properties/url", + "type": "string", + "title": "Url", + "description": "URL to this schema.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/privacy"] + }, + "_hash": { + "$id": "#/properties/meta/properties/_hash", + "type": "string", + "title": "_hash", + "description": "The hash is based on one SHA256 calculation of the document.", + "minLength": 64, + "maxLength": 64, + "examples": [ + "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + ] + } + } + }, + "controller": { + "$id": "#/properties/controller", + "type": "object", + "title": "Controller", + "description": "The responsible controller is defined in here.", + "examples": [ + { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "sector": "J" + } + ], + "required": ["name", "address", "country", "representative"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller.", + "examples": ["Green Company AG"] + }, + "division": { + "$id": "#/properties/controller/properties/division", + "type": "string", + "title": "Division", + "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/controller/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the controller.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/controller/properties/country", + "type": "string", + "title": "Country", + "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", + "default": "DE", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "representative": { + "$id": "#/properties/controller/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative is a responsible real person that represents the controller.", + "examples": [ + { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "email"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller's representative.", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/controller/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "Email address of the controller's representative.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/controller/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the controller's representative.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["+49 151 1234 5678"] + } + } + }, + "sector": { + "$id": "#/properties/controller/properties/sector", + "type": "string", + "description": "The industry of the controller according to UN ISIC Rev. 4", + "example": "J", + "maxLength": 1, + "pattern": "[A-Z]" + } + } + }, + "dataProtectionOfficer": { + "$id": "#/properties/dataProtectionOfficer", + "type": "object", + "title": "DataProtectionOfficer", + "description": "The Data Protection Officer (DPO) of the controller.", + "examples": [ + { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "address", "country", "email"], + "properties": { + "name": { + "$id": "#/properties/dataProtectionOfficer/properties/name", + "type": "string", + "title": "Name", + "description": "The full name of the Data Protection Officer.", + "examples": ["Jane Super"] + }, + "address": { + "$id": "#/properties/dataProtectionOfficer/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the DPO.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/dataProtectionOfficer/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the Data Protection officer is located at.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/dataProtectionOfficer/properties/email", + "type": "string", + "title": "Email", + "description": "The contact email address of the Data Protection Officer.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/dataProtectionOfficer/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the Data Protection Officer (may include country prefix).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 5678"] + } + } + }, + "dataDisclosed": { + "$id": "#/properties/dataDisclosed", + "type": "array", + "title": "DataDisclosed", + "description": "A detailed explanation about which data is disclosed in the processing tasks.", + "examples": [ + [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0", + "title": "AnyOf schema", + "description": "The description of data disclosed.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "properties": { + "_id": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", + "type": "array", + "title": "Category", + "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", + "examples": ["E-mail address"], + "items": { "type": "string" } + }, + "purposes": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", + "type": "array", + "title": "Purposes", + "description": "The purpose for which a data item is processed for.", + "examples": [ + [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", + "title": "AnyOf schema for the purposes.", + "examples": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "properties": { + "purpose": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", + "type": "string", + "title": "Purpose", + "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", + "examples": ["Marketing"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "This schema refers to an exact description of the purpose the data is processed for.", + "examples": [ + "Newsletter will be sent out once a month." + ] + } + }, + "required": ["purpose", "description"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", + "type": "object" + } + }, + "legalBases": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", + "type": "array", + "title": "LegalBases", + "description": "An explanation about the legal bases for the processing of personal data disclosed.", + "examples": [ + [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", + "title": "AnyOf schema for the legal bases of the data disclosed.", + "examples": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + } + ], + "properties": { + "reference": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", + "type": "string", + "title": "Reference", + "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["GDPR-99-1-a"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the legal basis used.", + "examples": [ + "The data are processed on the basis of Art. 99 GDPR which states..." + ] + } + }, + "required": ["reference"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", + "type": "object" + } + }, + "legitimateInterests": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", + "type": "array", + "title": "LegitimateInterests", + "description": "An explanation about the legitimate interests for the processing of data disclosed.", + "examples": [ + [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", + "title": "AnyOf schema for legitimate interests.", + "examples": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "if": { + "properties": { "exists": { "const": true } }, + "required": ["exists"] + }, + "then": { "required": ["reasoning"] }, + "properties": { + "exists": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", + "type": "boolean", + "title": "Exists", + "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", + "default": false, + "examples": [true, false] + }, + "reasoning": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", + "type": "string", + "title": "Reasoning", + "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", + "examples": [ + "There is an legitimate interest based on ... and is not overwritten because ..." + ] + } + } + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", + "type": "object" + } + }, + "recipients": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", + "type": "array", + "title": "Recipients", + "description": "An explanation about the recipients of the data disclosed.", + "examples": [ + [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", + "title": "AnyOf schema if recipients", + "examples": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the third party (recipient).", + "examples": ["Yellow Company AG"] + }, + "division": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", + "type": "string", + "title": "Division", + "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", + "type": "string", + "title": "Address", + "description": "The address of the third party (recipient).", + "examples": ["Triana 123, 9999 Seville"] + }, + "country": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "representative": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative of the third party (recipient).", + "examples": [ + { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the representative of the third party (recipient).", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "The email address of the representative of the third party (recipient).", + "format": "email", + "examples": ["contact@yellowcompany.de"] + }, + "phone": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the representative of the third party (recipient).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 9876"] + } + } + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", + "type": "string", + "title": "Category", + "description": "The category of the the recipient.", + "examples": ["Marketing content provider"] + } + }, + "required": ["category"] + }, + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", + "title": "Second anyOf", + "examples": [ + { "category": "Responsible Statistical Institutes" } + ], + "properties": { + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", + "type": "string", + "title": "Category", + "description": "This category has to be given, even if the controller is not mentioned explicitly.", + "examples": ["Responsible Statistical Institutes"] + } + }, + "required": ["category"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", + "type": "object" + } + }, + "storage": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", + "type": "array", + "title": "Storage", + "description": "In this section, the duration of storage or storage criteria are given.", + "examples": [ + [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "properties": { + "temporal": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", + "type": "array", + "title": "Temporal", + "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", + "examples": [ + [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "properties": { + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "The description why the data has to be stored..", + "examples": ["Creating backups."] + }, + "ttl": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", + "type": "string", + "title": "Ttl", + "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", + "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", + "examples": [ + "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + ] + } + }, + "required": ["description", "ttl"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", + "type": "object" + } + }, + "purposeConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", + "type": "array", + "title": "PurposeConditional", + "description": "Specifies the purpose that requires data storage.", + "examples": [ + [ + "Data is stored until the end of the ordering process." + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + "Data is stored until the end of the ordering process." + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", + "type": "string" + } + }, + "legalBasisConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", + "type": "array", + "title": "LegalBasisConditional", + "description": "If the storage is required by law, the respective one has to specified in here.", + "examples": [["SGB-100-42"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", + "title": "First anyOf", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["SGB-100-42"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", + "type": "string" + } + }, + "aggregationFunction": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", + "type": "string", + "title": "AggregationFunction", + "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", + "default": "max", + "enum": ["min", "max", "sum", "avg"], + "examples": ["max"] + } + }, + "required": ["aggregationFunction"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", + "type": "object" + } + }, + "nonDisclosure": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", + "type": "object", + "title": "NonDisclosure", + "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", + "examples": [ + { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + ], + "required": [ + "legalRequirement", + "contractualRegulation", + "obligationToProvide", + "consequences" + ], + "properties": { + "legalRequirement": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", + "type": "boolean", + "title": "LegalRequirement", + "description": "Is there a legal requirement to collect these data?", + "default": false, + "examples": [false, true] + }, + "contractualRegulation": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", + "type": "boolean", + "title": "ContractualRegulation", + "description": "Is there a contractual regulation to collect these data?", + "default": false, + "examples": [false, true] + }, + "obligationToProvide": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", + "type": "boolean", + "title": "ObligationToProvide", + "description": "Is there an obligation for the data subject to provide these data?", + "default": false, + "examples": [false, true] + }, + "consequences": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", + "type": "string", + "title": "Consequences", + "description": "Description of the consequences in the case of non-disclosure.", + "examples": [ + "If the data is not disclosed, the shipment cannot be delivered." + ] + } + } + } + }, + "required": [ + "_id", + "category", + "purposes", + "legalBases", + "legitimateInterests", + "recipients", + "storage", + "nonDisclosure" + ] + } + ], + "$id": "#/properties/dataDisclosed/items", + "type": "object" + } + }, + "thirdCountryTransfers": { + "$id": "#/properties/thirdCountryTransfers", + "type": "array", + "title": "ThirdCountryTransfers", + "description": "This schema refers to the adequacy decisions of any third country transfers.", + "examples": [ + [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "properties": { + "country": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country code of the third country.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "adequacyDecision": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", + "type": "object", + "title": "AdequacyDecision", + "examples": [ + { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", + "type": "boolean", + "title": "Available", + "description": "Adequacy decision by the European commission exists?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the adequacy decision by the European commission.", + "examples": [ + "An adequacy decision was made on the 23rd April 2020 by..." + ] + } + } + }, + "appropriateGuarantees": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", + "type": "object", + "title": "AppropriateGuarantees", + "description": "Suitable guarantees according to Art. 45", + "examples": [ + { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", + "type": "boolean", + "title": "Available", + "description": "Do suitable guarantees according to Art. 45 exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", + "type": "string", + "title": "Description", + "description": "Description of suitable guarantees according to Art. 45", + "examples": [ + "Here the appropriate guarantee was formulated by..." + ] + } + } + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", + "type": "object", + "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", + "description": "Presence of enforceable rights and effective remedies", + "examples": [ + { + "available": true, + "description": "These rights are given because of..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", + "type": "boolean", + "title": "Available", + "description": "Presence of enforceable rights and effective remedies?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", + "type": "string", + "title": "Description", + "description": "Description of enforceable rights and effective remedies.", + "examples": ["These rights are given because of..."] + } + } + }, + "standardDataProtectionClause": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", + "type": "object", + "title": "StandardDataProtectionClause", + "description": "Schema on Standard Data Protection clauses.", + "examples": [ + { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", + "type": "boolean", + "title": "Available", + "description": "Does a standard data protection clause exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the standard data protection clause (may include link).", + "examples": [ + "The standard data protection clause which applies here can be found here: ..." + ] + } + } + } + } + } + ], + "$id": "#/properties/thirdCountryTransfers/items", + "type": "object" + } + }, + "accessAndDataPortability": { + "$id": "#/properties/accessAndDataPortability", + "type": "object", + "title": "AccessAndDataPortability", + "description": "Defining the right to access and data portability.", + "examples": [ + { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + } + ], + "required": ["available"], + "properties": { + "available": { + "$id": "#/properties/accessAndDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/accessAndDataPortability/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the requirements according to Art. 20 GDPR.", + "examples": [ + "Data access is possible through...", + "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." + ] + }, + "url": { + "$id": "#/properties/accessAndDataPortability/properties/url", + "type": "string", + "title": "Url", + "description": "URL to relevant resources such as access portals.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/access"] + }, + "email": { + "$id": "#/properties/accessAndDataPortability/properties/email", + "type": "string", + "title": "Email", + "description": "Contact email address", + "format": "email", + "examples": ["access@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "description": "ID evidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", + "type": "string" + } + }, + "administrativeFee": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", + "type": "object", + "title": "AdministrativeFee", + "description": "The fee that refers to several copies.", + "examples": [{ "amount": 0, "currency": "EUR" }], + "properties": { + "amount": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", + "type": "number", + "title": "Amount", + "description": "The amount of money to be paid for a copy.", + "default": 0, + "examples": [0] + }, + "currency": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", + "type": "string", + "title": "Currency", + "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", + "default": "EUR", + "minLength": 3, + "maxLength": 3, + "examples": ["EUR"] + } + }, + "required": ["amount", "currency"] + }, + "dataFormats": { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats", + "type": "array", + "title": "DataFormat", + "description": "An explanation about the data format(s) the data is provided in.", + "default": ["json"], + "examples": ["json", "xml"], + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", + "title": "First anyOf", + "examples": ["json", "xml"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", + "type": "string" + } + } + } + }, + "sources": { + "$id": "#/properties/sources", + "type": "array", + "title": "Sources", + "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", + "examples": [ + [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "properties": { + "_id": { + "$id": "#/properties/sources/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", + "examples": ["f1423cc00509931"] + }, + "dataCategory": { + "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", + "type": "string", + "title": "DataCategory", + "description": "The category the data refer to.", + "examples": ["Creditworthiness"] + }, + "sources": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources", + "type": "array", + "title": "Sources", + "description": "Specify the source(s) where the data come from.", + "examples": [ + [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ], + "properties": { + "description": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the source the data is taken from.", + "examples": [ + "This information could be retrieved from..." + ] + }, + "url": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", + "type": "string", + "title": "Url", + "description": "URL (reference) where the data is taken from.", + "format": "uri-reference", + "examples": ["https://blueCompany.org"] + }, + "publiclyAvailable": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", + "type": "boolean", + "title": "PubliclyAvailable", + "description": "Are these data publicly available?", + "default": false, + "examples": [false, true] + } + }, + "required": ["description", "url", "publiclyAvailable"] + } + ], + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", + "type": "object" + } + } + }, + "required": ["_id", "dataCategory", "sources"] + } + ], + "$id": "#/properties/sources/items", + "type": "object" + } + }, + "rightToInformation": { + "$id": "#/properties/rightToInformation", + "type": "object", + "title": "RightToInformation", + "description": "Refers to the right of information.", + "examples": [ + { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToInformation/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/rightToInformation/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the right.", + "examples": [ + "For the right to information please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToInformation/properties/url", + "type": "string", + "title": "Url", + "description": "URL to an online portal.", + "format": "uri-reference", + "examples": ["https://greencompany.org/rightToInformation"] + }, + "email": { + "$id": "#/properties/rightToInformation/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToInformation/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToRectificationOrDeletion": { + "$id": "#/properties/rightToRectificationOrDeletion", + "type": "object", + "title": "RightToRectificationOrDeletion", + "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", + "examples": [ + { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to rectification please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToDataPortability": { + "$id": "#/properties/rightToDataPortability", + "type": "object", + "title": "RightToDataPortability", + "description": "The right to data portability as stated in Art. 20 GDPR.", + "examples": [ + { + "available": true, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [false, true] + }, + "description": { + "$id": "#/properties/rightToDataPortability/properties/description", + "type": "string", + "title": "Description", + "examples": ["Data portability is only possible when..."] + }, + "url": { + "$id": "#/properties/rightToDataPortability/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToDataPortability/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy"] + } + ], + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToWithdrawConsent": { + "$id": "#/properties/rightToWithdrawConsent", + "type": "object", + "title": "RightToWithdrawConsent", + "description": "This schema refers to the right to withdraw consent.", + "examples": [ + { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToWithdrawConsent/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToWithdrawConsent/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to withdraw consent please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToWithdrawConsent/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToWithdrawConsent/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email verification"] + } + ], + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToComplain": { + "$id": "#/properties/rightToComplain", + "type": "object", + "title": "RightToComplain", + "description": "This schema refers to the right to complain.", + "examples": [ + { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description", "supervisoryAuthority"] }, + "properties": { + "available": { + "$id": "#/properties/rightToComplain/properties/available", + "type": "boolean", + "title": "Available", + "description": "Is this right available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToComplain/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to complain please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToComplain/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToComplain/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", + "type": "string" + } + }, + "supervisoryAuthority": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", + "type": "object", + "title": "SupervisoryAuthority", + "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", + "examples": [ + { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + ], + "properties": { + "name": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the supervisory authority.", + "examples": ["Commissioner for Data Protection"] + }, + "address": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", + "type": "string", + "title": "Address", + "description": "Adress of the supervisory authority.", + "examples": ["Friedrichstrasse 219, 10969 Berlin"] + }, + "country": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", + "type": "string", + "title": "Country", + "description": "Country of the supervisory authority.", + "minLength": 2, + "maxLength": 2, + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", + "type": "string", + "title": "Email", + "description": "Email adress of the supervisory authority.", + "format": "email", + "examples": ["mailbox@privacy-berlin.de"] + }, + "phone": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the supervisory authority.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 444 222 111"] + } + }, + "required": ["name"] + } + } + }, + "automatedDecisionMaking": { + "$id": "#/properties/automatedDecisionMaking", + "type": "object", + "title": "AutomatedDecisionMaking", + "description": "Automated decision making and potentially involved logic. Does include profiling.", + "examples": [ + { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + } + ], + "if": { + "properties": { "inUse": { "const": true } }, + "required": ["inUse"] + }, + "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, + "properties": { + "inUse": { + "$id": "#/properties/automatedDecisionMaking/properties/inUse", + "type": "boolean", + "title": "InUse", + "description": "Is automated decision making in use?", + "default": true, + "examples": [true, false] + }, + "logicInvolved": { + "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", + "type": "string", + "title": "LogicInvolved", + "description": "An explanation about the logic involved to automated decision making.", + "examples": ["The personal data are processed as follows..."] + }, + "scopeAndIntendedEffects": { + "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", + "type": "string", + "title": "ScopeAndIntendedEffects", + "description": "Scope and intended effects of such processing for the data subject.", + "examples": ["From processing follows..."] + } + } + }, + "changesOfPurpose": { + "$id": "#/properties/changesOfPurpose", + "type": "array", + "title": "ChangesOfPurpose", + "description": "Notification of change of purpose.", + "examples": [ + [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ], + "properties": { + "description": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the change of purpose.", + "examples": ["Due to technical requirements..."] + }, + "affectedDataCategories": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", + "type": "array", + "title": "AffectedDataCategories", + "description": "Data categories that are affected from the change of purpose.", + "examples": [["Email adress", "Credit score"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email adress", "Credit score"] + } + ], + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", + "type": "string" + } + }, + "plannedDateOfChange": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", + "type": "string", + "title": "PlannedDateOfChange", + "description": "Specify the planned date to the changes as ISO 8601 string.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-08-20"] + }, + "urlOfNewVersion": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", + "type": "string", + "title": "UrlOfNewVersion", + "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", + "examples": ["https://greencomp.de/tilt/2"] + } + } + } + ], + "$id": "#/properties/changesOfPurpose/items", + "type": "object" + } + } + }, + "required": [ + "meta", + "controller", + "dataProtectionOfficer", + "dataDisclosed", + "thirdCountryTransfers", + "accessAndDataPortability", + "sources", + "rightToInformation", + "rightToRectificationOrDeletion", + "rightToDataPortability", + "rightToWithdrawConsent", + "rightToComplain", + "automatedDecisionMaking", + "changesOfPurpose" + ] +} From 3dd49813d3d2a360ef6777d38da586747d703b03 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 22 Mar 2023 11:58:40 +0100 Subject: [PATCH 63/80] example-generator add missing line --- example-generator.ipynb | 172 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) diff --git a/example-generator.ipynb b/example-generator.ipynb index e69de29..e309ade 100644 --- a/example-generator.ipynb +++ b/example-generator.ipynb @@ -0,0 +1,172 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example-generator.ipynb\n", + "\n", + "Test area to construct and example tilt out of the tilt-schema.\n", + "\n", + "Will be turned into .py file that can be executed as a GitHub action. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os \n", + "import json\n", + "import glob\n", + "import jsonschema\n", + "from jsonschema import Draft7Validator" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Validation failed with 2 error(s):\n", + "Error 1:\n", + " Message: {} is not valid under any of the given schemas\n", + " Path: dataDisclosed.0\n", + " Schema path: properties/dataDisclosed/items/anyOf\n", + "Error 2:\n", + " Message: {} is not valid under any of the given schemas\n", + " Path: sources.0\n", + " Schema path: properties/sources/items/anyOf\n" + ] + } + ], + "source": [ + "import json\n", + "import jsonschema\n", + "\n", + "# Load JSON schema\n", + "with open('combined.json', 'r') as schema_file:\n", + " schema_data = json.load(schema_file)\n", + "\n", + "# Build empty JSON based on schema\n", + "empty_json = {}\n", + "for key, value in schema_data.get('properties', {}).items():\n", + " if value.get('type') == 'object':\n", + " empty_json[key] = {}\n", + " elif value.get('type') == 'array':\n", + " empty_json[key] = []\n", + " else:\n", + " empty_json[key] = None\n", + "\n", + "# Fill empty JSON with examples provided in schema\n", + "def update_json_with_example(json_obj, schema_obj):\n", + " for key, value in schema_obj.get('properties', {}).items():\n", + "\n", + "\n", + " if value.get('type') == 'object':\n", + " json_obj[key] = {}\n", + " update_json_with_example(json_obj[key], value)\n", + " elif value.get('type') == 'array':\n", + " json_obj[key] = []\n", + " if value.get('items', {}).get('type') == 'object':\n", + " json_obj[key].append({})\n", + " update_json_with_example(json_obj[key][0], value['items'])\n", + " else:\n", + " example = None\n", + " if 'anyOf' in value:\n", + " for subschema in value['anyOf']:\n", + " try:\n", + " jsonschema.validate({key: subschema['examples'][0]}, {key: subschema})\n", + " example = subschema['examples'][0]\n", + " break\n", + " except jsonschema.ValidationError:\n", + " pass\n", + " else:\n", + " # Check if field is optional\n", + " if value.get('default') is not None or value.get('nullable') or value.get('optional'):\n", + " # If optional, use default value or set to null\n", + " json_obj[key] = value.get('default', None)\n", + " else:\n", + " # Otherwise, use example value\n", + " example = value.get('examples', [None])[0]\n", + " if example is not None:\n", + " json_obj[key] = example\n", + "\n", + "\n", + "update_json_with_example(empty_json, schema_data)\n", + "\n", + "# Print resulting JSON\n", + "#print(json.dumps(empty_json, indent=2))\n", + "\n", + "validator = jsonschema.Draft7Validator(schema_data)\n", + "errors = list(validator.iter_errors(empty_json))\n", + "\n", + "# Print detailed error messages for any validation errors\n", + "if errors:\n", + " print(f\"Validation failed with {len(errors)} error(s):\")\n", + " for i, error in enumerate(errors, start=1):\n", + " print(f\"Error {i}:\")\n", + " print(f\" Message: {error.message}\")\n", + " print(f\" Path: {'.'.join(str(p) for p in error.absolute_path)}\")\n", + " print(f\" Schema path: {'/'.join(str(p) for p in error.schema_path)}\")\n", + "else:\n", + " print(\"Validation successful!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{}]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "empty_json['dataDisclosed']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 3a4e901827bca528caff71a5e95f3b158dccd5ee Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 22 Mar 2023 10:58:57 +0000 Subject: [PATCH 64/80] combined the file --- combined.json | 2193 +------------------------------------------------ 1 file changed, 1 insertion(+), 2192 deletions(-) diff --git a/combined.json b/combined.json index 3c6236e..e8990e9 100644 --- a/combined.json +++ b/combined.json @@ -1,2192 +1 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/Transparency-Information-Language/schema", - "type": "object", - "title": "Root schema of a Transparency Information Language", - "description": "This schema defines the Transparency Information Language", - "examples": [ - { - "meta": { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - }, - "controller": { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - }, - "dataProtectionOfficer": { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "dataDisclosed": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "thirdCountryTransfers": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "accessAndDataPortability": { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - }, - "sources": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "rightToInformation": { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToRectificationOrDeletion": { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToDataPortability": { - "available": false, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - }, - "rightToWithdrawConsent": { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - }, - "rightToComplain": { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - }, - "automatedDecisionMaking": { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - }, - "changesOfPurpose": [ - { - "description": "Due to techncial requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - } - ], - "properties": { - "meta": { - "$id": "#/properties/meta", - "type": "object", - "title": "Meta", - "description": "Meta information for the identification and verification of the document.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15:53:05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - } - ], - "required": [ - "_id", - "name", - "created", - "modified", - "version", - "language", - "status", - "url", - "_hash" - ], - "properties": { - "_id": { - "$id": "#/properties/meta/properties/_id", - "type": "string", - "title": "_id", - "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "name": { - "$id": "#/properties/meta/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the data controller.", - "examples": ["Green Company"] - }, - "created": { - "$id": "#/properties/meta/properties/created", - "type": "string", - "title": "Created", - "description": "Creation date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "modified": { - "$id": "#/properties/meta/properties/modified", - "type": "string", - "title": "Modified", - "description": "Last modified date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "version": { - "$id": "#/properties/meta/properties/version", - "type": "integer", - "title": "Version", - "description": "This number serves to version documents of a controller.", - "default": 1, - "minimum": 1, - "examples": [2] - }, - "language": { - "$id": "#/properties/meta/properties/language", - "type": "string", - "title": "Language", - "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", - "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", - "default": "en", - "examples": ["de"] - }, - "status": { - "$id": "#/properties/meta/properties/status", - "type": "string", - "title": "Status", - "description": "The status of an instance can be active or inactive depending on the policy's legal force.", - "default": "active", - "pattern": "^(active|inactive)$", - "examples": ["active", "inactive"] - }, - "url": { - "$id": "#/properties/meta/properties/url", - "type": "string", - "title": "Url", - "description": "URL to this schema.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/privacy"] - }, - "_hash": { - "$id": "#/properties/meta/properties/_hash", - "type": "string", - "title": "_hash", - "description": "The hash is based on one SHA256 calculation of the document.", - "minLength": 64, - "maxLength": 64, - "examples": [ - "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" - ] - } - } - }, - "controller": { - "$id": "#/properties/controller", - "type": "object", - "title": "Controller", - "description": "The responsible controller is defined in here.", - "examples": [ - { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "sector": "J" - } - ], - "required": ["name", "address", "country", "representative"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller.", - "examples": ["Green Company AG"] - }, - "division": { - "$id": "#/properties/controller/properties/division", - "type": "string", - "title": "Division", - "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/controller/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the controller.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/controller/properties/country", - "type": "string", - "title": "Country", - "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", - "default": "DE", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "representative": { - "$id": "#/properties/controller/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative is a responsible real person that represents the controller.", - "examples": [ - { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "email"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller's representative.", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/controller/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "Email address of the controller's representative.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/controller/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the controller's representative.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["+49 151 1234 5678"] - } - } - }, - "sector": { - "$id": "#/properties/controller/properties/sector", - "type": "string", - "description": "The industry of the controller according to UN ISIC Rev. 4", - "example": "J", - "maxLength": 1, - "pattern": "[A-Z]" - } - } - }, - "dataProtectionOfficer": { - "$id": "#/properties/dataProtectionOfficer", - "type": "object", - "title": "DataProtectionOfficer", - "description": "The Data Protection Officer (DPO) of the controller.", - "examples": [ - { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "address", "country", "email"], - "properties": { - "name": { - "$id": "#/properties/dataProtectionOfficer/properties/name", - "type": "string", - "title": "Name", - "description": "The full name of the Data Protection Officer.", - "examples": ["Jane Super"] - }, - "address": { - "$id": "#/properties/dataProtectionOfficer/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the DPO.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/dataProtectionOfficer/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the Data Protection officer is located at.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/dataProtectionOfficer/properties/email", - "type": "string", - "title": "Email", - "description": "The contact email address of the Data Protection Officer.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/dataProtectionOfficer/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the Data Protection Officer (may include country prefix).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 5678"] - } - } - }, - "dataDisclosed": { - "$id": "#/properties/dataDisclosed", - "type": "array", - "title": "DataDisclosed", - "description": "A detailed explanation about which data is disclosed in the processing tasks.", - "examples": [ - [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0", - "title": "AnyOf schema", - "description": "The description of data disclosed.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "properties": { - "_id": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", - "type": "array", - "title": "Category", - "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": ["E-mail address"], - "items": { "type": "string" } - }, - "purposes": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", - "type": "array", - "title": "Purposes", - "description": "The purpose for which a data item is processed for.", - "examples": [ - [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", - "title": "AnyOf schema for the purposes.", - "examples": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "properties": { - "purpose": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", - "type": "string", - "title": "Purpose", - "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": ["Marketing"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "This schema refers to an exact description of the purpose the data is processed for.", - "examples": [ - "Newsletter will be sent out once a month." - ] - } - }, - "required": ["purpose", "description"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", - "type": "object" - } - }, - "legalBases": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", - "type": "array", - "title": "LegalBases", - "description": "An explanation about the legal bases for the processing of personal data disclosed.", - "examples": [ - [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", - "title": "AnyOf schema for the legal bases of the data disclosed.", - "examples": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - } - ], - "properties": { - "reference": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", - "type": "string", - "title": "Reference", - "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["GDPR-99-1-a"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the legal basis used.", - "examples": [ - "The data are processed on the basis of Art. 99 GDPR which states..." - ] - } - }, - "required": ["reference"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", - "type": "object" - } - }, - "legitimateInterests": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", - "type": "array", - "title": "LegitimateInterests", - "description": "An explanation about the legitimate interests for the processing of data disclosed.", - "examples": [ - [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", - "title": "AnyOf schema for legitimate interests.", - "examples": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "if": { - "properties": { "exists": { "const": true } }, - "required": ["exists"] - }, - "then": { "required": ["reasoning"] }, - "properties": { - "exists": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", - "type": "boolean", - "title": "Exists", - "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", - "default": false, - "examples": [true, false] - }, - "reasoning": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", - "type": "string", - "title": "Reasoning", - "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", - "examples": [ - "There is an legitimate interest based on ... and is not overwritten because ..." - ] - } - } - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", - "type": "object" - } - }, - "recipients": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", - "type": "array", - "title": "Recipients", - "description": "An explanation about the recipients of the data disclosed.", - "examples": [ - [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", - "title": "AnyOf schema if recipients", - "examples": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the third party (recipient).", - "examples": ["Yellow Company AG"] - }, - "division": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", - "type": "string", - "title": "Division", - "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", - "type": "string", - "title": "Address", - "description": "The address of the third party (recipient).", - "examples": ["Triana 123, 9999 Seville"] - }, - "country": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "representative": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative of the third party (recipient).", - "examples": [ - { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the representative of the third party (recipient).", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "The email address of the representative of the third party (recipient).", - "format": "email", - "examples": ["contact@yellowcompany.de"] - }, - "phone": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the representative of the third party (recipient).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 9876"] - } - } - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", - "type": "string", - "title": "Category", - "description": "The category of the the recipient.", - "examples": ["Marketing content provider"] - } - }, - "required": ["category"] - }, - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", - "title": "Second anyOf", - "examples": [ - { "category": "Responsible Statistical Institutes" } - ], - "properties": { - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", - "type": "string", - "title": "Category", - "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": ["Responsible Statistical Institutes"] - } - }, - "required": ["category"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", - "type": "object" - } - }, - "storage": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", - "type": "array", - "title": "Storage", - "description": "In this section, the duration of storage or storage criteria are given.", - "examples": [ - [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "properties": { - "temporal": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", - "type": "array", - "title": "Temporal", - "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", - "examples": [ - [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "properties": { - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "The description why the data has to be stored..", - "examples": ["Creating backups."] - }, - "ttl": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", - "type": "string", - "title": "Ttl", - "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", - "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", - "examples": [ - "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - ] - } - }, - "required": ["description", "ttl"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", - "type": "object" - } - }, - "purposeConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", - "type": "array", - "title": "PurposeConditional", - "description": "Specifies the purpose that requires data storage.", - "examples": [ - [ - "Data is stored until the end of the ordering process." - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - "Data is stored until the end of the ordering process." - ] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", - "type": "string" - } - }, - "legalBasisConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", - "type": "array", - "title": "LegalBasisConditional", - "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [["SGB-100-42"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", - "title": "First anyOf", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["SGB-100-42"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", - "type": "string" - } - }, - "aggregationFunction": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", - "type": "string", - "title": "AggregationFunction", - "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", - "default": "max", - "enum": ["min", "max", "sum", "avg"], - "examples": ["max"] - } - }, - "required": ["aggregationFunction"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", - "type": "object" - } - }, - "nonDisclosure": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", - "type": "object", - "title": "NonDisclosure", - "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", - "examples": [ - { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - ], - "required": [ - "legalRequirement", - "contractualRegulation", - "obligationToProvide", - "consequences" - ], - "properties": { - "legalRequirement": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", - "type": "boolean", - "title": "LegalRequirement", - "description": "Is there a legal requirement to collect these data?", - "default": false, - "examples": [false, true] - }, - "contractualRegulation": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", - "type": "boolean", - "title": "ContractualRegulation", - "description": "Is there a contractual regulation to collect these data?", - "default": false, - "examples": [false, true] - }, - "obligationToProvide": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", - "type": "boolean", - "title": "ObligationToProvide", - "description": "Is there an obligation for the data subject to provide these data?", - "default": false, - "examples": [false, true] - }, - "consequences": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", - "type": "string", - "title": "Consequences", - "description": "Description of the consequences in the case of non-disclosure.", - "examples": [ - "If the data is not disclosed, the shipment cannot be delivered." - ] - } - } - } - }, - "required": [ - "_id", - "category", - "purposes", - "legalBases", - "legitimateInterests", - "recipients", - "storage", - "nonDisclosure" - ] - } - ], - "$id": "#/properties/dataDisclosed/items", - "type": "object" - } - }, - "thirdCountryTransfers": { - "$id": "#/properties/thirdCountryTransfers", - "type": "array", - "title": "ThirdCountryTransfers", - "description": "This schema refers to the adequacy decisions of any third country transfers.", - "examples": [ - [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "properties": { - "country": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country code of the third country.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "adequacyDecision": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", - "type": "object", - "title": "AdequacyDecision", - "examples": [ - { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", - "type": "boolean", - "title": "Available", - "description": "Adequacy decision by the European commission exists?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the adequacy decision by the European commission.", - "examples": [ - "An adequacy decision was made on the 23rd April 2020 by..." - ] - } - } - }, - "appropriateGuarantees": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", - "type": "object", - "title": "AppropriateGuarantees", - "description": "Suitable guarantees according to Art. 45", - "examples": [ - { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", - "type": "boolean", - "title": "Available", - "description": "Do suitable guarantees according to Art. 45 exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", - "type": "string", - "title": "Description", - "description": "Description of suitable guarantees according to Art. 45", - "examples": [ - "Here the appropriate guarantee was formulated by..." - ] - } - } - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", - "type": "object", - "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", - "description": "Presence of enforceable rights and effective remedies", - "examples": [ - { - "available": true, - "description": "These rights are given because of..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", - "type": "boolean", - "title": "Available", - "description": "Presence of enforceable rights and effective remedies?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", - "type": "string", - "title": "Description", - "description": "Description of enforceable rights and effective remedies.", - "examples": ["These rights are given because of..."] - } - } - }, - "standardDataProtectionClause": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", - "type": "object", - "title": "StandardDataProtectionClause", - "description": "Schema on Standard Data Protection clauses.", - "examples": [ - { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", - "type": "boolean", - "title": "Available", - "description": "Does a standard data protection clause exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the standard data protection clause (may include link).", - "examples": [ - "The standard data protection clause which applies here can be found here: ..." - ] - } - } - } - } - } - ], - "$id": "#/properties/thirdCountryTransfers/items", - "type": "object" - } - }, - "accessAndDataPortability": { - "$id": "#/properties/accessAndDataPortability", - "type": "object", - "title": "AccessAndDataPortability", - "description": "Defining the right to access and data portability.", - "examples": [ - { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - } - ], - "required": ["available"], - "properties": { - "available": { - "$id": "#/properties/accessAndDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/accessAndDataPortability/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the requirements according to Art. 20 GDPR.", - "examples": [ - "Data access is possible through...", - "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." - ] - }, - "url": { - "$id": "#/properties/accessAndDataPortability/properties/url", - "type": "string", - "title": "Url", - "description": "URL to relevant resources such as access portals.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/access"] - }, - "email": { - "$id": "#/properties/accessAndDataPortability/properties/email", - "type": "string", - "title": "Email", - "description": "Contact email address", - "format": "email", - "examples": ["access@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "description": "ID evidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", - "type": "string" - } - }, - "administrativeFee": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", - "type": "object", - "title": "AdministrativeFee", - "description": "The fee that refers to several copies.", - "examples": [{ "amount": 0, "currency": "EUR" }], - "properties": { - "amount": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", - "type": "number", - "title": "Amount", - "description": "The amount of money to be paid for a copy.", - "default": 0, - "examples": [0] - }, - "currency": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", - "type": "string", - "title": "Currency", - "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", - "default": "EUR", - "minLength": 3, - "maxLength": 3, - "examples": ["EUR"] - } - }, - "required": ["amount", "currency"] - }, - "dataFormats": { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats", - "type": "array", - "title": "DataFormat", - "description": "An explanation about the data format(s) the data is provided in.", - "default": ["json"], - "examples": ["json", "xml"], - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", - "title": "First anyOf", - "examples": ["json", "xml"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", - "type": "string" - } - } - } - }, - "sources": { - "$id": "#/properties/sources", - "type": "array", - "title": "Sources", - "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", - "examples": [ - [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "properties": { - "_id": { - "$id": "#/properties/sources/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": ["f1423cc00509931"] - }, - "dataCategory": { - "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", - "type": "string", - "title": "DataCategory", - "description": "The category the data refer to.", - "examples": ["Creditworthiness"] - }, - "sources": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources", - "type": "array", - "title": "Sources", - "description": "Specify the source(s) where the data come from.", - "examples": [ - [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ], - "properties": { - "description": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the source the data is taken from.", - "examples": [ - "This information could be retrieved from..." - ] - }, - "url": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", - "type": "string", - "title": "Url", - "description": "URL (reference) where the data is taken from.", - "format": "uri-reference", - "examples": ["https://blueCompany.org"] - }, - "publiclyAvailable": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", - "type": "boolean", - "title": "PubliclyAvailable", - "description": "Are these data publicly available?", - "default": false, - "examples": [false, true] - } - }, - "required": ["description", "url", "publiclyAvailable"] - } - ], - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", - "type": "object" - } - } - }, - "required": ["_id", "dataCategory", "sources"] - } - ], - "$id": "#/properties/sources/items", - "type": "object" - } - }, - "rightToInformation": { - "$id": "#/properties/rightToInformation", - "type": "object", - "title": "RightToInformation", - "description": "Refers to the right of information.", - "examples": [ - { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToInformation/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/rightToInformation/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the right.", - "examples": [ - "For the right to information please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToInformation/properties/url", - "type": "string", - "title": "Url", - "description": "URL to an online portal.", - "format": "uri-reference", - "examples": ["https://greencompany.org/rightToInformation"] - }, - "email": { - "$id": "#/properties/rightToInformation/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToInformation/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToRectificationOrDeletion": { - "$id": "#/properties/rightToRectificationOrDeletion", - "type": "object", - "title": "RightToRectificationOrDeletion", - "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", - "examples": [ - { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to rectification please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToDataPortability": { - "$id": "#/properties/rightToDataPortability", - "type": "object", - "title": "RightToDataPortability", - "description": "The right to data portability as stated in Art. 20 GDPR.", - "examples": [ - { - "available": true, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [false, true] - }, - "description": { - "$id": "#/properties/rightToDataPortability/properties/description", - "type": "string", - "title": "Description", - "examples": ["Data portability is only possible when..."] - }, - "url": { - "$id": "#/properties/rightToDataPortability/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToDataPortability/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy"] - } - ], - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToWithdrawConsent": { - "$id": "#/properties/rightToWithdrawConsent", - "type": "object", - "title": "RightToWithdrawConsent", - "description": "This schema refers to the right to withdraw consent.", - "examples": [ - { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToWithdrawConsent/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToWithdrawConsent/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to withdraw consent please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToWithdrawConsent/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToWithdrawConsent/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email verification"] - } - ], - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToComplain": { - "$id": "#/properties/rightToComplain", - "type": "object", - "title": "RightToComplain", - "description": "This schema refers to the right to complain.", - "examples": [ - { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description", "supervisoryAuthority"] }, - "properties": { - "available": { - "$id": "#/properties/rightToComplain/properties/available", - "type": "boolean", - "title": "Available", - "description": "Is this right available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToComplain/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to complain please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToComplain/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToComplain/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", - "type": "string" - } - }, - "supervisoryAuthority": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", - "type": "object", - "title": "SupervisoryAuthority", - "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", - "examples": [ - { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - ], - "properties": { - "name": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the supervisory authority.", - "examples": ["Commissioner for Data Protection"] - }, - "address": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", - "type": "string", - "title": "Address", - "description": "Adress of the supervisory authority.", - "examples": ["Friedrichstrasse 219, 10969 Berlin"] - }, - "country": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", - "type": "string", - "title": "Country", - "description": "Country of the supervisory authority.", - "minLength": 2, - "maxLength": 2, - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", - "type": "string", - "title": "Email", - "description": "Email adress of the supervisory authority.", - "format": "email", - "examples": ["mailbox@privacy-berlin.de"] - }, - "phone": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the supervisory authority.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 444 222 111"] - } - }, - "required": ["name"] - } - } - }, - "automatedDecisionMaking": { - "$id": "#/properties/automatedDecisionMaking", - "type": "object", - "title": "AutomatedDecisionMaking", - "description": "Automated decision making and potentially involved logic. Does include profiling.", - "examples": [ - { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - } - ], - "if": { - "properties": { "inUse": { "const": true } }, - "required": ["inUse"] - }, - "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, - "properties": { - "inUse": { - "$id": "#/properties/automatedDecisionMaking/properties/inUse", - "type": "boolean", - "title": "InUse", - "description": "Is automated decision making in use?", - "default": true, - "examples": [true, false] - }, - "logicInvolved": { - "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", - "type": "string", - "title": "LogicInvolved", - "description": "An explanation about the logic involved to automated decision making.", - "examples": ["The personal data are processed as follows..."] - }, - "scopeAndIntendedEffects": { - "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", - "type": "string", - "title": "ScopeAndIntendedEffects", - "description": "Scope and intended effects of such processing for the data subject.", - "examples": ["From processing follows..."] - } - } - }, - "changesOfPurpose": { - "$id": "#/properties/changesOfPurpose", - "type": "array", - "title": "ChangesOfPurpose", - "description": "Notification of change of purpose.", - "examples": [ - [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ], - "properties": { - "description": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the change of purpose.", - "examples": ["Due to technical requirements..."] - }, - "affectedDataCategories": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", - "type": "array", - "title": "AffectedDataCategories", - "description": "Data categories that are affected from the change of purpose.", - "examples": [["Email adress", "Credit score"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email adress", "Credit score"] - } - ], - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", - "type": "string" - } - }, - "plannedDateOfChange": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", - "type": "string", - "title": "PlannedDateOfChange", - "description": "Specify the planned date to the changes as ISO 8601 string.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-08-20"] - }, - "urlOfNewVersion": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", - "type": "string", - "title": "UrlOfNewVersion", - "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": ["https://greencomp.de/tilt/2"] - } - } - } - ], - "$id": "#/properties/changesOfPurpose/items", - "type": "object" - } - } - }, - "required": [ - "meta", - "controller", - "dataProtectionOfficer", - "dataDisclosed", - "thirdCountryTransfers", - "accessAndDataPortability", - "sources", - "rightToInformation", - "rightToRectificationOrDeletion", - "rightToDataPortability", - "rightToWithdrawConsent", - "rightToComplain", - "automatedDecisionMaking", - "changesOfPurpose" - ] -} +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From 12371f84c06220613dcc5f262858dfee4f489b47 Mon Sep 17 00:00:00 2001 From: Halkenhaeusser Date: Wed, 22 Mar 2023 10:59:10 +0000 Subject: [PATCH 65/80] Prettified Code! --- combined.json | 2193 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 2192 insertions(+), 1 deletion(-) diff --git a/combined.json b/combined.json index e8990e9..3c6236e 100644 --- a/combined.json +++ b/combined.json @@ -1 +1,2192 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/Transparency-Information-Language/schema", + "type": "object", + "title": "Root schema of a Transparency Information Language", + "description": "This schema defines the Transparency Information Language", + "examples": [ + { + "meta": { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + }, + "controller": { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + }, + "dataProtectionOfficer": { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "dataDisclosed": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": ["E-mail address"], + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "thirdCountryTransfers": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "accessAndDataPortability": { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + }, + "sources": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "rightToInformation": { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToRectificationOrDeletion": { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToDataPortability": { + "available": false, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + }, + "rightToWithdrawConsent": { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + }, + "rightToComplain": { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + }, + "automatedDecisionMaking": { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + }, + "changesOfPurpose": [ + { + "description": "Due to techncial requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + } + ], + "properties": { + "meta": { + "$id": "#/properties/meta", + "type": "object", + "title": "Meta", + "description": "Meta information for the identification and verification of the document.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15:53:05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + } + ], + "required": [ + "_id", + "name", + "created", + "modified", + "version", + "language", + "status", + "url", + "_hash" + ], + "properties": { + "_id": { + "$id": "#/properties/meta/properties/_id", + "type": "string", + "title": "_id", + "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "name": { + "$id": "#/properties/meta/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the data controller.", + "examples": ["Green Company"] + }, + "created": { + "$id": "#/properties/meta/properties/created", + "type": "string", + "title": "Created", + "description": "Creation date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "modified": { + "$id": "#/properties/meta/properties/modified", + "type": "string", + "title": "Modified", + "description": "Last modified date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "version": { + "$id": "#/properties/meta/properties/version", + "type": "integer", + "title": "Version", + "description": "This number serves to version documents of a controller.", + "default": 1, + "minimum": 1, + "examples": [2] + }, + "language": { + "$id": "#/properties/meta/properties/language", + "type": "string", + "title": "Language", + "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", + "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", + "default": "en", + "examples": ["de"] + }, + "status": { + "$id": "#/properties/meta/properties/status", + "type": "string", + "title": "Status", + "description": "The status of an instance can be active or inactive depending on the policy's legal force.", + "default": "active", + "pattern": "^(active|inactive)$", + "examples": ["active", "inactive"] + }, + "url": { + "$id": "#/properties/meta/properties/url", + "type": "string", + "title": "Url", + "description": "URL to this schema.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/privacy"] + }, + "_hash": { + "$id": "#/properties/meta/properties/_hash", + "type": "string", + "title": "_hash", + "description": "The hash is based on one SHA256 calculation of the document.", + "minLength": 64, + "maxLength": 64, + "examples": [ + "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + ] + } + } + }, + "controller": { + "$id": "#/properties/controller", + "type": "object", + "title": "Controller", + "description": "The responsible controller is defined in here.", + "examples": [ + { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "sector": "J" + } + ], + "required": ["name", "address", "country", "representative"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller.", + "examples": ["Green Company AG"] + }, + "division": { + "$id": "#/properties/controller/properties/division", + "type": "string", + "title": "Division", + "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/controller/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the controller.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/controller/properties/country", + "type": "string", + "title": "Country", + "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", + "default": "DE", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "representative": { + "$id": "#/properties/controller/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative is a responsible real person that represents the controller.", + "examples": [ + { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "email"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller's representative.", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/controller/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "Email address of the controller's representative.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/controller/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the controller's representative.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["+49 151 1234 5678"] + } + } + }, + "sector": { + "$id": "#/properties/controller/properties/sector", + "type": "string", + "description": "The industry of the controller according to UN ISIC Rev. 4", + "example": "J", + "maxLength": 1, + "pattern": "[A-Z]" + } + } + }, + "dataProtectionOfficer": { + "$id": "#/properties/dataProtectionOfficer", + "type": "object", + "title": "DataProtectionOfficer", + "description": "The Data Protection Officer (DPO) of the controller.", + "examples": [ + { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "address", "country", "email"], + "properties": { + "name": { + "$id": "#/properties/dataProtectionOfficer/properties/name", + "type": "string", + "title": "Name", + "description": "The full name of the Data Protection Officer.", + "examples": ["Jane Super"] + }, + "address": { + "$id": "#/properties/dataProtectionOfficer/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the DPO.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/dataProtectionOfficer/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the Data Protection officer is located at.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/dataProtectionOfficer/properties/email", + "type": "string", + "title": "Email", + "description": "The contact email address of the Data Protection Officer.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/dataProtectionOfficer/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the Data Protection Officer (may include country prefix).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 5678"] + } + } + }, + "dataDisclosed": { + "$id": "#/properties/dataDisclosed", + "type": "array", + "title": "DataDisclosed", + "description": "A detailed explanation about which data is disclosed in the processing tasks.", + "examples": [ + [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0", + "title": "AnyOf schema", + "description": "The description of data disclosed.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "properties": { + "_id": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", + "type": "array", + "title": "Category", + "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", + "examples": ["E-mail address"], + "items": { "type": "string" } + }, + "purposes": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", + "type": "array", + "title": "Purposes", + "description": "The purpose for which a data item is processed for.", + "examples": [ + [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", + "title": "AnyOf schema for the purposes.", + "examples": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "properties": { + "purpose": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", + "type": "string", + "title": "Purpose", + "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", + "examples": ["Marketing"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "This schema refers to an exact description of the purpose the data is processed for.", + "examples": [ + "Newsletter will be sent out once a month." + ] + } + }, + "required": ["purpose", "description"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", + "type": "object" + } + }, + "legalBases": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", + "type": "array", + "title": "LegalBases", + "description": "An explanation about the legal bases for the processing of personal data disclosed.", + "examples": [ + [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", + "title": "AnyOf schema for the legal bases of the data disclosed.", + "examples": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + } + ], + "properties": { + "reference": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", + "type": "string", + "title": "Reference", + "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["GDPR-99-1-a"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the legal basis used.", + "examples": [ + "The data are processed on the basis of Art. 99 GDPR which states..." + ] + } + }, + "required": ["reference"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", + "type": "object" + } + }, + "legitimateInterests": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", + "type": "array", + "title": "LegitimateInterests", + "description": "An explanation about the legitimate interests for the processing of data disclosed.", + "examples": [ + [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", + "title": "AnyOf schema for legitimate interests.", + "examples": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "if": { + "properties": { "exists": { "const": true } }, + "required": ["exists"] + }, + "then": { "required": ["reasoning"] }, + "properties": { + "exists": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", + "type": "boolean", + "title": "Exists", + "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", + "default": false, + "examples": [true, false] + }, + "reasoning": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", + "type": "string", + "title": "Reasoning", + "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", + "examples": [ + "There is an legitimate interest based on ... and is not overwritten because ..." + ] + } + } + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", + "type": "object" + } + }, + "recipients": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", + "type": "array", + "title": "Recipients", + "description": "An explanation about the recipients of the data disclosed.", + "examples": [ + [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", + "title": "AnyOf schema if recipients", + "examples": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the third party (recipient).", + "examples": ["Yellow Company AG"] + }, + "division": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", + "type": "string", + "title": "Division", + "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", + "type": "string", + "title": "Address", + "description": "The address of the third party (recipient).", + "examples": ["Triana 123, 9999 Seville"] + }, + "country": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "representative": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative of the third party (recipient).", + "examples": [ + { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the representative of the third party (recipient).", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "The email address of the representative of the third party (recipient).", + "format": "email", + "examples": ["contact@yellowcompany.de"] + }, + "phone": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the representative of the third party (recipient).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 9876"] + } + } + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", + "type": "string", + "title": "Category", + "description": "The category of the the recipient.", + "examples": ["Marketing content provider"] + } + }, + "required": ["category"] + }, + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", + "title": "Second anyOf", + "examples": [ + { "category": "Responsible Statistical Institutes" } + ], + "properties": { + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", + "type": "string", + "title": "Category", + "description": "This category has to be given, even if the controller is not mentioned explicitly.", + "examples": ["Responsible Statistical Institutes"] + } + }, + "required": ["category"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", + "type": "object" + } + }, + "storage": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", + "type": "array", + "title": "Storage", + "description": "In this section, the duration of storage or storage criteria are given.", + "examples": [ + [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "properties": { + "temporal": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", + "type": "array", + "title": "Temporal", + "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", + "examples": [ + [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "properties": { + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "The description why the data has to be stored..", + "examples": ["Creating backups."] + }, + "ttl": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", + "type": "string", + "title": "Ttl", + "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", + "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", + "examples": [ + "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + ] + } + }, + "required": ["description", "ttl"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", + "type": "object" + } + }, + "purposeConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", + "type": "array", + "title": "PurposeConditional", + "description": "Specifies the purpose that requires data storage.", + "examples": [ + [ + "Data is stored until the end of the ordering process." + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + "Data is stored until the end of the ordering process." + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", + "type": "string" + } + }, + "legalBasisConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", + "type": "array", + "title": "LegalBasisConditional", + "description": "If the storage is required by law, the respective one has to specified in here.", + "examples": [["SGB-100-42"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", + "title": "First anyOf", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["SGB-100-42"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", + "type": "string" + } + }, + "aggregationFunction": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", + "type": "string", + "title": "AggregationFunction", + "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", + "default": "max", + "enum": ["min", "max", "sum", "avg"], + "examples": ["max"] + } + }, + "required": ["aggregationFunction"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", + "type": "object" + } + }, + "nonDisclosure": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", + "type": "object", + "title": "NonDisclosure", + "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", + "examples": [ + { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + ], + "required": [ + "legalRequirement", + "contractualRegulation", + "obligationToProvide", + "consequences" + ], + "properties": { + "legalRequirement": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", + "type": "boolean", + "title": "LegalRequirement", + "description": "Is there a legal requirement to collect these data?", + "default": false, + "examples": [false, true] + }, + "contractualRegulation": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", + "type": "boolean", + "title": "ContractualRegulation", + "description": "Is there a contractual regulation to collect these data?", + "default": false, + "examples": [false, true] + }, + "obligationToProvide": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", + "type": "boolean", + "title": "ObligationToProvide", + "description": "Is there an obligation for the data subject to provide these data?", + "default": false, + "examples": [false, true] + }, + "consequences": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", + "type": "string", + "title": "Consequences", + "description": "Description of the consequences in the case of non-disclosure.", + "examples": [ + "If the data is not disclosed, the shipment cannot be delivered." + ] + } + } + } + }, + "required": [ + "_id", + "category", + "purposes", + "legalBases", + "legitimateInterests", + "recipients", + "storage", + "nonDisclosure" + ] + } + ], + "$id": "#/properties/dataDisclosed/items", + "type": "object" + } + }, + "thirdCountryTransfers": { + "$id": "#/properties/thirdCountryTransfers", + "type": "array", + "title": "ThirdCountryTransfers", + "description": "This schema refers to the adequacy decisions of any third country transfers.", + "examples": [ + [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "properties": { + "country": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country code of the third country.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "adequacyDecision": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", + "type": "object", + "title": "AdequacyDecision", + "examples": [ + { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", + "type": "boolean", + "title": "Available", + "description": "Adequacy decision by the European commission exists?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the adequacy decision by the European commission.", + "examples": [ + "An adequacy decision was made on the 23rd April 2020 by..." + ] + } + } + }, + "appropriateGuarantees": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", + "type": "object", + "title": "AppropriateGuarantees", + "description": "Suitable guarantees according to Art. 45", + "examples": [ + { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", + "type": "boolean", + "title": "Available", + "description": "Do suitable guarantees according to Art. 45 exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", + "type": "string", + "title": "Description", + "description": "Description of suitable guarantees according to Art. 45", + "examples": [ + "Here the appropriate guarantee was formulated by..." + ] + } + } + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", + "type": "object", + "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", + "description": "Presence of enforceable rights and effective remedies", + "examples": [ + { + "available": true, + "description": "These rights are given because of..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", + "type": "boolean", + "title": "Available", + "description": "Presence of enforceable rights and effective remedies?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", + "type": "string", + "title": "Description", + "description": "Description of enforceable rights and effective remedies.", + "examples": ["These rights are given because of..."] + } + } + }, + "standardDataProtectionClause": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", + "type": "object", + "title": "StandardDataProtectionClause", + "description": "Schema on Standard Data Protection clauses.", + "examples": [ + { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", + "type": "boolean", + "title": "Available", + "description": "Does a standard data protection clause exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the standard data protection clause (may include link).", + "examples": [ + "The standard data protection clause which applies here can be found here: ..." + ] + } + } + } + } + } + ], + "$id": "#/properties/thirdCountryTransfers/items", + "type": "object" + } + }, + "accessAndDataPortability": { + "$id": "#/properties/accessAndDataPortability", + "type": "object", + "title": "AccessAndDataPortability", + "description": "Defining the right to access and data portability.", + "examples": [ + { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + } + ], + "required": ["available"], + "properties": { + "available": { + "$id": "#/properties/accessAndDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/accessAndDataPortability/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the requirements according to Art. 20 GDPR.", + "examples": [ + "Data access is possible through...", + "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." + ] + }, + "url": { + "$id": "#/properties/accessAndDataPortability/properties/url", + "type": "string", + "title": "Url", + "description": "URL to relevant resources such as access portals.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/access"] + }, + "email": { + "$id": "#/properties/accessAndDataPortability/properties/email", + "type": "string", + "title": "Email", + "description": "Contact email address", + "format": "email", + "examples": ["access@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "description": "ID evidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", + "type": "string" + } + }, + "administrativeFee": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", + "type": "object", + "title": "AdministrativeFee", + "description": "The fee that refers to several copies.", + "examples": [{ "amount": 0, "currency": "EUR" }], + "properties": { + "amount": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", + "type": "number", + "title": "Amount", + "description": "The amount of money to be paid for a copy.", + "default": 0, + "examples": [0] + }, + "currency": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", + "type": "string", + "title": "Currency", + "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", + "default": "EUR", + "minLength": 3, + "maxLength": 3, + "examples": ["EUR"] + } + }, + "required": ["amount", "currency"] + }, + "dataFormats": { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats", + "type": "array", + "title": "DataFormat", + "description": "An explanation about the data format(s) the data is provided in.", + "default": ["json"], + "examples": ["json", "xml"], + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", + "title": "First anyOf", + "examples": ["json", "xml"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", + "type": "string" + } + } + } + }, + "sources": { + "$id": "#/properties/sources", + "type": "array", + "title": "Sources", + "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", + "examples": [ + [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "properties": { + "_id": { + "$id": "#/properties/sources/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", + "examples": ["f1423cc00509931"] + }, + "dataCategory": { + "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", + "type": "string", + "title": "DataCategory", + "description": "The category the data refer to.", + "examples": ["Creditworthiness"] + }, + "sources": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources", + "type": "array", + "title": "Sources", + "description": "Specify the source(s) where the data come from.", + "examples": [ + [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ], + "properties": { + "description": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the source the data is taken from.", + "examples": [ + "This information could be retrieved from..." + ] + }, + "url": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", + "type": "string", + "title": "Url", + "description": "URL (reference) where the data is taken from.", + "format": "uri-reference", + "examples": ["https://blueCompany.org"] + }, + "publiclyAvailable": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", + "type": "boolean", + "title": "PubliclyAvailable", + "description": "Are these data publicly available?", + "default": false, + "examples": [false, true] + } + }, + "required": ["description", "url", "publiclyAvailable"] + } + ], + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", + "type": "object" + } + } + }, + "required": ["_id", "dataCategory", "sources"] + } + ], + "$id": "#/properties/sources/items", + "type": "object" + } + }, + "rightToInformation": { + "$id": "#/properties/rightToInformation", + "type": "object", + "title": "RightToInformation", + "description": "Refers to the right of information.", + "examples": [ + { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToInformation/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/rightToInformation/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the right.", + "examples": [ + "For the right to information please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToInformation/properties/url", + "type": "string", + "title": "Url", + "description": "URL to an online portal.", + "format": "uri-reference", + "examples": ["https://greencompany.org/rightToInformation"] + }, + "email": { + "$id": "#/properties/rightToInformation/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToInformation/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToRectificationOrDeletion": { + "$id": "#/properties/rightToRectificationOrDeletion", + "type": "object", + "title": "RightToRectificationOrDeletion", + "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", + "examples": [ + { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to rectification please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToDataPortability": { + "$id": "#/properties/rightToDataPortability", + "type": "object", + "title": "RightToDataPortability", + "description": "The right to data portability as stated in Art. 20 GDPR.", + "examples": [ + { + "available": true, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [false, true] + }, + "description": { + "$id": "#/properties/rightToDataPortability/properties/description", + "type": "string", + "title": "Description", + "examples": ["Data portability is only possible when..."] + }, + "url": { + "$id": "#/properties/rightToDataPortability/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToDataPortability/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy"] + } + ], + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToWithdrawConsent": { + "$id": "#/properties/rightToWithdrawConsent", + "type": "object", + "title": "RightToWithdrawConsent", + "description": "This schema refers to the right to withdraw consent.", + "examples": [ + { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToWithdrawConsent/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToWithdrawConsent/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to withdraw consent please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToWithdrawConsent/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToWithdrawConsent/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email verification"] + } + ], + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToComplain": { + "$id": "#/properties/rightToComplain", + "type": "object", + "title": "RightToComplain", + "description": "This schema refers to the right to complain.", + "examples": [ + { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description", "supervisoryAuthority"] }, + "properties": { + "available": { + "$id": "#/properties/rightToComplain/properties/available", + "type": "boolean", + "title": "Available", + "description": "Is this right available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToComplain/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to complain please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToComplain/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToComplain/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", + "type": "string" + } + }, + "supervisoryAuthority": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", + "type": "object", + "title": "SupervisoryAuthority", + "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", + "examples": [ + { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + ], + "properties": { + "name": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the supervisory authority.", + "examples": ["Commissioner for Data Protection"] + }, + "address": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", + "type": "string", + "title": "Address", + "description": "Adress of the supervisory authority.", + "examples": ["Friedrichstrasse 219, 10969 Berlin"] + }, + "country": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", + "type": "string", + "title": "Country", + "description": "Country of the supervisory authority.", + "minLength": 2, + "maxLength": 2, + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", + "type": "string", + "title": "Email", + "description": "Email adress of the supervisory authority.", + "format": "email", + "examples": ["mailbox@privacy-berlin.de"] + }, + "phone": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the supervisory authority.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 444 222 111"] + } + }, + "required": ["name"] + } + } + }, + "automatedDecisionMaking": { + "$id": "#/properties/automatedDecisionMaking", + "type": "object", + "title": "AutomatedDecisionMaking", + "description": "Automated decision making and potentially involved logic. Does include profiling.", + "examples": [ + { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + } + ], + "if": { + "properties": { "inUse": { "const": true } }, + "required": ["inUse"] + }, + "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, + "properties": { + "inUse": { + "$id": "#/properties/automatedDecisionMaking/properties/inUse", + "type": "boolean", + "title": "InUse", + "description": "Is automated decision making in use?", + "default": true, + "examples": [true, false] + }, + "logicInvolved": { + "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", + "type": "string", + "title": "LogicInvolved", + "description": "An explanation about the logic involved to automated decision making.", + "examples": ["The personal data are processed as follows..."] + }, + "scopeAndIntendedEffects": { + "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", + "type": "string", + "title": "ScopeAndIntendedEffects", + "description": "Scope and intended effects of such processing for the data subject.", + "examples": ["From processing follows..."] + } + } + }, + "changesOfPurpose": { + "$id": "#/properties/changesOfPurpose", + "type": "array", + "title": "ChangesOfPurpose", + "description": "Notification of change of purpose.", + "examples": [ + [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ], + "properties": { + "description": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the change of purpose.", + "examples": ["Due to technical requirements..."] + }, + "affectedDataCategories": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", + "type": "array", + "title": "AffectedDataCategories", + "description": "Data categories that are affected from the change of purpose.", + "examples": [["Email adress", "Credit score"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email adress", "Credit score"] + } + ], + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", + "type": "string" + } + }, + "plannedDateOfChange": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", + "type": "string", + "title": "PlannedDateOfChange", + "description": "Specify the planned date to the changes as ISO 8601 string.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-08-20"] + }, + "urlOfNewVersion": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", + "type": "string", + "title": "UrlOfNewVersion", + "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", + "examples": ["https://greencomp.de/tilt/2"] + } + } + } + ], + "$id": "#/properties/changesOfPurpose/items", + "type": "object" + } + } + }, + "required": [ + "meta", + "controller", + "dataProtectionOfficer", + "dataDisclosed", + "thirdCountryTransfers", + "accessAndDataPortability", + "sources", + "rightToInformation", + "rightToRectificationOrDeletion", + "rightToDataPortability", + "rightToWithdrawConsent", + "rightToComplain", + "automatedDecisionMaking", + "changesOfPurpose" + ] +} From d1bd717d40314bd3d2a7fd9705d1992dd39c6f52 Mon Sep 17 00:00:00 2001 From: louisloechel <57091589+louisloechel@users.noreply.github.com> Date: Tue, 9 May 2023 17:09:23 +0200 Subject: [PATCH 66/80] change output file name --- .github/workflows/main.yaml | 3 +++ tilt_schema/recompile.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index cc2d29a..0a3fffc 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -10,6 +10,9 @@ on: branches: - 15-github-action-ci-pipeline-for-merging-the-specification # !! Update this once we merge to master !! + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + jobs: reconstruct: diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py index a2d2c5b..04ff03f 100644 --- a/tilt_schema/recompile.py +++ b/tilt_schema/recompile.py @@ -59,9 +59,9 @@ def reconstruct(): # Write the combined data to a new JSON file - with open('../combined.json', 'w') as f: + with open('../tilt-schema.json', 'w') as f: json.dump(combined_data, f) - print('successfully created new json: ../combined.json') + print('successfully created new json: ../tilt-schema.json') os.remove("06_properties.json") From 111d66945c3c47f482e9680e1d0cd6af16419cf9 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 9 May 2023 15:09:54 +0000 Subject: [PATCH 67/80] combined the file --- tilt-schema.json | 2282 +--------------------------------------------- 1 file changed, 1 insertion(+), 2281 deletions(-) diff --git a/tilt-schema.json b/tilt-schema.json index 1f3e01a..e8990e9 100644 --- a/tilt-schema.json +++ b/tilt-schema.json @@ -1,2281 +1 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/Transparency-Information-Language/schema", - "type": "object", - "title": "Root schema of a Transparency Information Language", - "description": "This schema defines the Transparency Information Language", - "examples": [ - { - "meta": { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - }, - "controller": { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - }, - "dataProtectionOfficer": { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "dataDisclosed": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { - "category": "Responsible Statistical Institutes" - } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "thirdCountryTransfers": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "accessAndDataPortability": { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { - "amount": 0, - "currency": "EUR" - }, - "dataFormat": "json" - }, - "sources": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "rightToInformation": { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToRectificationOrDeletion": { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToDataPortability": { - "available": false, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - }, - "rightToWithdrawConsent": { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - }, - "rightToComplain": { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - }, - "automatedDecisionMaking": { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - }, - "changesOfPurpose": [ - { - "description": "Due to techncial requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - } - ], - "properties": { - "meta": { - "$id": "#/properties/meta", - "type": "object", - "title": "Meta", - "description": "Meta information for the identification and verification of the document.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - } - ], - "required": [ - "_id", - "name", - "created", - "modified", - "version", - "language", - "status", - "url", - "_hash" - ], - "properties": { - "_id": { - "$id": "#/properties/meta/properties/_id", - "type": "string", - "title": "_id", - "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "name": { - "$id": "#/properties/meta/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the data controller.", - "examples": ["Green Company"] - }, - "created": { - "$id": "#/properties/meta/properties/created", - "type": "string", - "title": "Created", - "description": "Creation date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "modified": { - "$id": "#/properties/meta/properties/modified", - "type": "string", - "title": "Modified", - "description": "Last modified date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15: 53: 05.929588"] - }, - "version": { - "$id": "#/properties/meta/properties/version", - "type": "integer", - "title": "Version", - "description": "This number serves to version documents of a controller.", - "default": 1, - "minimum": 1, - "examples": [2] - }, - "language": { - "$id": "#/properties/meta/properties/language", - "type": "string", - "title": "Language", - "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", - "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", - "default": "en", - "examples": ["de"] - }, - "status": { - "$id": "#/properties/meta/properties/status", - "type": "string", - "title": "Status", - "description": "The status of an instance can be active or inactive depending on the policy's legal force.", - "default": "active", - "pattern": "^(active|inactive)$", - "examples": ["active", "inactive"] - }, - "url": { - "$id": "#/properties/meta/properties/url", - "type": "string", - "title": "Url", - "description": "URL to this schema.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/privacy"] - }, - "_hash": { - "$id": "#/properties/meta/properties/_hash", - "type": "string", - "title": "_hash", - "description": "The hash is based on one SHA256 calculation of the document.", - "minLength": 64, - "maxLength": 64, - "examples": [ - "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" - ] - } - } - }, - "controller": { - "$id": "#/properties/controller", - "type": "object", - "title": "Controller", - "description": "The responsible controller is defined in here.", - "examples": [ - { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "sector": "J" - } - ], - "required": ["name", "address", "country", "representative"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller.", - "examples": ["Green Company AG"] - }, - "division": { - "$id": "#/properties/controller/properties/division", - "type": "string", - "title": "Division", - "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/controller/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the controller.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/controller/properties/country", - "type": "string", - "title": "Country", - "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", - "default": "DE", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "representative": { - "$id": "#/properties/controller/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative is a responsible real person that represents the controller.", - "examples": [ - { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "email"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller's representative.", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/controller/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "Email address of the controller's representative.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/controller/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the controller's representative.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["+49 151 1234 5678"] - } - } - }, - "sector": { - "$id": "#/properties/controller/properties/sector", - "type": "string", - "description": "The industry of the controller according to UN ISIC Rev. 4", - "example": "J", - "maxLength": 1, - "pattern": "[A-Z]" - } - } - }, - "dataProtectionOfficer": { - "$id": "#/properties/dataProtectionOfficer", - "type": "object", - "title": "DataProtectionOfficer", - "description": "The Data Protection Officer (DPO) of the controller.", - "examples": [ - { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "address", "country", "email"], - "properties": { - "name": { - "$id": "#/properties/dataProtectionOfficer/properties/name", - "type": "string", - "title": "Name", - "description": "The full name of the Data Protection Officer.", - "examples": ["Jane Super"] - }, - "address": { - "$id": "#/properties/dataProtectionOfficer/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the DPO.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/dataProtectionOfficer/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the Data Protection officer is located at.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/dataProtectionOfficer/properties/email", - "type": "string", - "title": "Email", - "description": "The contact email address of the Data Protection Officer.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/dataProtectionOfficer/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the Data Protection Officer (may include country prefix).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 5678"] - } - } - }, - "dataDisclosed": { - "$id": "#/properties/dataDisclosed", - "type": "array", - "title": "DataDisclosed", - "description": "A detailed explanation about which data is disclosed in the processing tasks.", - "examples": [ - [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { - "category": "Responsible Statistical Institutes" - } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0", - "title": "AnyOf schema", - "description": "The description of data disclosed.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { - "category": "Responsible Statistical Institutes" - } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "properties": { - "_id": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", - "type": "array", - "title": "Category", - "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": ["E-mail address"], - "items": { - "type": "string" - } - }, - "purposes": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", - "type": "array", - "title": "Purposes", - "description": "The purpose for which a data item is processed for.", - "examples": [ - [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", - "title": "AnyOf schema for the purposes.", - "examples": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "properties": { - "purpose": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", - "type": "string", - "title": "Purpose", - "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": ["Marketing"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "This schema refers to an exact description of the purpose the data is processed for.", - "examples": [ - "Newsletter will be sent out once a month." - ] - } - }, - "required": ["purpose", "description"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", - "type": "object" - } - }, - "legalBases": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", - "type": "array", - "title": "LegalBases", - "description": "An explanation about the legal bases for the processing of personal data disclosed.", - "examples": [ - [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", - "title": "AnyOf schema for the legal bases of the data disclosed.", - "examples": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - } - ], - "properties": { - "reference": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", - "type": "string", - "title": "Reference", - "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["GDPR-99-1-a"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the legal basis used.", - "examples": [ - "The data are processed on the basis of Art. 99 GDPR which states..." - ] - } - }, - "required": ["reference"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", - "type": "object" - } - }, - "legitimateInterests": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", - "type": "array", - "title": "LegitimateInterests", - "description": "An explanation about the legitimate interests for the processing of data disclosed.", - "examples": [ - [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", - "title": "AnyOf schema for legitimate interests.", - "examples": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "if": { - "properties": { - "exists": { - "const": true - } - }, - "required": ["exists"] - }, - "then": { - "required": ["reasoning"] - }, - "properties": { - "exists": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", - "type": "boolean", - "title": "Exists", - "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", - "default": false, - "examples": [true, false] - }, - "reasoning": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", - "type": "string", - "title": "Reasoning", - "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", - "examples": [ - "There is an legitimate interest based on ... and is not overwritten because ..." - ] - } - } - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", - "type": "object" - } - }, - "recipients": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", - "type": "array", - "title": "Recipients", - "description": "An explanation about the recipients of the data disclosed.", - "examples": [ - [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { - "category": "Responsible Statistical Institutes" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", - "title": "AnyOf schema if recipients", - "examples": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the third party (recipient).", - "examples": ["Yellow Company AG"] - }, - "division": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", - "type": "string", - "title": "Division", - "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", - "type": "string", - "title": "Address", - "description": "The address of the third party (recipient).", - "examples": ["Triana 123, 9999 Seville"] - }, - "country": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "representative": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative of the third party (recipient).", - "examples": [ - { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the representative of the third party (recipient).", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "The email address of the representative of the third party (recipient).", - "format": "email", - "examples": ["contact@yellowcompany.de"] - }, - "phone": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the representative of the third party (recipient).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 9876"] - } - } - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", - "type": "string", - "title": "Category", - "description": "The category of the the recipient.", - "examples": ["Marketing content provider"] - } - }, - "required": ["category"] - }, - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", - "title": "Second anyOf", - "examples": [ - { - "category": "Responsible Statistical Institutes" - } - ], - "properties": { - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", - "type": "string", - "title": "Category", - "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": ["Responsible Statistical Institutes"] - } - }, - "required": ["category"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", - "type": "object" - } - }, - "storage": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", - "type": "array", - "title": "Storage", - "description": "In this section, the duration of storage or storage criteria are given.", - "examples": [ - [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "properties": { - "temporal": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", - "type": "array", - "title": "Temporal", - "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", - "examples": [ - [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "properties": { - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "The description why the data has to be stored..", - "examples": ["Creating backups."] - }, - "ttl": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", - "type": "string", - "title": "Ttl", - "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", - "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", - "examples": [ - "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - ] - } - }, - "required": ["description", "ttl"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", - "type": "object" - } - }, - "purposeConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", - "type": "array", - "title": "PurposeConditional", - "description": "Specifies the purpose that requires data storage.", - "examples": [ - [ - "Data is stored until the end of the ordering process." - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - "Data is stored until the end of the ordering process." - ] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", - "type": "string" - } - }, - "legalBasisConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", - "type": "array", - "title": "LegalBasisConditional", - "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [["SGB-100-42"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", - "title": "First anyOf", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["SGB-100-42"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", - "type": "string" - } - }, - "aggregationFunction": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", - "type": "string", - "title": "AggregationFunction", - "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", - "default": "max", - "enum": ["min", "max", "sum", "avg"], - "examples": ["max"] - } - }, - "required": ["aggregationFunction"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", - "type": "object" - } - }, - "nonDisclosure": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", - "type": "object", - "title": "NonDisclosure", - "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", - "examples": [ - { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - ], - "required": [ - "legalRequirement", - "contractualRegulation", - "obligationToProvide", - "consequences" - ], - "properties": { - "legalRequirement": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", - "type": "boolean", - "title": "LegalRequirement", - "description": "Is there a legal requirement to collect these data?", - "default": false, - "examples": [false, true] - }, - "contractualRegulation": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", - "type": "boolean", - "title": "ContractualRegulation", - "description": "Is there a contractual regulation to collect these data?", - "default": false, - "examples": [false, true] - }, - "obligationToProvide": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", - "type": "boolean", - "title": "ObligationToProvide", - "description": "Is there an obligation for the data subject to provide these data?", - "default": false, - "examples": [false, true] - }, - "consequences": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", - "type": "string", - "title": "Consequences", - "description": "Description of the consequences in the case of non-disclosure.", - "examples": [ - "If the data is not disclosed, the shipment cannot be delivered." - ] - } - } - } - }, - "required": [ - "_id", - "category", - "purposes", - "legalBases", - "legitimateInterests", - "recipients", - "storage", - "nonDisclosure" - ] - } - ], - "$id": "#/properties/dataDisclosed/items", - "type": "object" - } - }, - "thirdCountryTransfers": { - "$id": "#/properties/thirdCountryTransfers", - "type": "array", - "title": "ThirdCountryTransfers", - "description": "This schema refers to the adequacy decisions of any third country transfers.", - "examples": [ - [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "properties": { - "country": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country code of the third country.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "adequacyDecision": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", - "type": "object", - "title": "AdequacyDecision", - "examples": [ - { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description"] - }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", - "type": "boolean", - "title": "Available", - "description": "Adequacy decision by the European commission exists?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the adequacy decision by the European commission.", - "examples": [ - "An adequacy decision was made on the 23rd April 2020 by..." - ] - } - } - }, - "appropriateGuarantees": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", - "type": "object", - "title": "AppropriateGuarantees", - "description": "Suitable guarantees according to Art. 45", - "examples": [ - { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description"] - }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", - "type": "boolean", - "title": "Available", - "description": "Do suitable guarantees according to Art. 45 exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", - "type": "string", - "title": "Description", - "description": "Description of suitable guarantees according to Art. 45", - "examples": [ - "Here the appropriate guarantee was formulated by..." - ] - } - } - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", - "type": "object", - "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", - "description": "Presence of enforceable rights and effective remedies", - "examples": [ - { - "available": true, - "description": "These rights are given because of..." - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description"] - }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", - "type": "boolean", - "title": "Available", - "description": "Presence of enforceable rights and effective remedies?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", - "type": "string", - "title": "Description", - "description": "Description of enforceable rights and effective remedies.", - "examples": ["These rights are given because of..."] - } - } - }, - "standardDataProtectionClause": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", - "type": "object", - "title": "StandardDataProtectionClause", - "description": "Schema on Standard Data Protection clauses.", - "examples": [ - { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description"] - }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", - "type": "boolean", - "title": "Available", - "description": "Does a standard data protection clause exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the standard data protection clause (may include link).", - "examples": [ - "The standard data protection clause which applies here can be found here: ..." - ] - } - } - } - } - } - ], - "$id": "#/properties/thirdCountryTransfers/items", - "type": "object" - } - }, - "accessAndDataPortability": { - "$id": "#/properties/accessAndDataPortability", - "type": "object", - "title": "AccessAndDataPortability", - "description": "Defining the right to access and data portability.", - "examples": [ - { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { - "amount": 0, - "currency": "EUR" - }, - "dataFormat": "json" - } - ], - "required": ["available"], - "properties": { - "available": { - "$id": "#/properties/accessAndDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/accessAndDataPortability/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the requirements according to Art. 20 GDPR.", - "examples": [ - "Data access is possible through...", - "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." - ] - }, - "url": { - "$id": "#/properties/accessAndDataPortability/properties/url", - "type": "string", - "title": "Url", - "description": "URL to relevant resources such as access portals.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/access"] - }, - "email": { - "$id": "#/properties/accessAndDataPortability/properties/email", - "type": "string", - "title": "Email", - "description": "Contact email address", - "format": "email", - "examples": ["access@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "description": "ID evidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", - "type": "string" - } - }, - "administrativeFee": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", - "type": "object", - "title": "AdministrativeFee", - "description": "The fee that refers to several copies.", - "examples": [ - { - "amount": 0, - "currency": "EUR" - } - ], - "properties": { - "amount": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", - "type": "number", - "title": "Amount", - "description": "The amount of money to be paid for a copy.", - "default": 0, - "examples": [0] - }, - "currency": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", - "type": "string", - "title": "Currency", - "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", - "default": "EUR", - "minLength": 3, - "maxLength": 3, - "examples": ["EUR"] - } - }, - "required": ["amount", "currency"] - }, - "dataFormats": { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats", - "type": "array", - "title": "DataFormat", - "description": "An explanation about the data format(s) the data is provided in.", - "default": ["json"], - "examples": ["json", "xml"], - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", - "title": "First anyOf", - "examples": ["json", "xml"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", - "type": "string" - } - } - } - }, - "sources": { - "$id": "#/properties/sources", - "type": "array", - "title": "Sources", - "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", - "examples": [ - [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "properties": { - "_id": { - "$id": "#/properties/sources/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": ["f1423cc00509931"] - }, - "dataCategory": { - "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", - "type": "string", - "title": "DataCategory", - "description": "The category the data refer to.", - "examples": ["Creditworthiness"] - }, - "sources": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources", - "type": "array", - "title": "Sources", - "description": "Specify the source(s) where the data come from.", - "examples": [ - [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ], - "properties": { - "description": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the source the data is taken from.", - "examples": [ - "This information could be retrieved from..." - ] - }, - "url": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", - "type": "string", - "title": "Url", - "description": "URL (reference) where the data is taken from.", - "format": "uri-reference", - "examples": ["https://blueCompany.org"] - }, - "publiclyAvailable": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", - "type": "boolean", - "title": "PubliclyAvailable", - "description": "Are these data publicly available?", - "default": false, - "examples": [false, true] - } - }, - "required": ["description", "url", "publiclyAvailable"] - } - ], - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", - "type": "object" - } - } - }, - "required": ["_id", "dataCategory", "sources"] - } - ], - "$id": "#/properties/sources/items", - "type": "object" - } - }, - "rightToInformation": { - "$id": "#/properties/rightToInformation", - "type": "object", - "title": "RightToInformation", - "description": "Refers to the right of information.", - "examples": [ - { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description"] - }, - "properties": { - "available": { - "$id": "#/properties/rightToInformation/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/rightToInformation/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the right.", - "examples": [ - "For the right to information please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToInformation/properties/url", - "type": "string", - "title": "Url", - "description": "URL to an online portal.", - "format": "uri-reference", - "examples": ["https://greencompany.org/rightToInformation"] - }, - "email": { - "$id": "#/properties/rightToInformation/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToInformation/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToRectificationOrDeletion": { - "$id": "#/properties/rightToRectificationOrDeletion", - "type": "object", - "title": "RightToRectificationOrDeletion", - "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", - "examples": [ - { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description"] - }, - "properties": { - "available": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to rectification please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToDataPortability": { - "$id": "#/properties/rightToDataPortability", - "type": "object", - "title": "RightToDataPortability", - "description": "The right to data portability as stated in Art. 20 GDPR.", - "examples": [ - { - "available": true, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description"] - }, - "properties": { - "available": { - "$id": "#/properties/rightToDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [false, true] - }, - "description": { - "$id": "#/properties/rightToDataPortability/properties/description", - "type": "string", - "title": "Description", - "examples": ["Data portability is only possible when..."] - }, - "url": { - "$id": "#/properties/rightToDataPortability/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToDataPortability/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy"] - } - ], - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToWithdrawConsent": { - "$id": "#/properties/rightToWithdrawConsent", - "type": "object", - "title": "RightToWithdrawConsent", - "description": "This schema refers to the right to withdraw consent.", - "examples": [ - { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description"] - }, - "properties": { - "available": { - "$id": "#/properties/rightToWithdrawConsent/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToWithdrawConsent/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to withdraw consent please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToWithdrawConsent/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToWithdrawConsent/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email verification"] - } - ], - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToComplain": { - "$id": "#/properties/rightToComplain", - "type": "object", - "title": "RightToComplain", - "description": "This schema refers to the right to complain.", - "examples": [ - { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - } - ], - "if": { - "properties": { - "available": { - "const": true - } - }, - "required": ["available"] - }, - "then": { - "required": ["description", "supervisoryAuthority"] - }, - "properties": { - "available": { - "$id": "#/properties/rightToComplain/properties/available", - "type": "boolean", - "title": "Available", - "description": "Is this right available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToComplain/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to complain please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToComplain/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToComplain/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", - "type": "string" - } - }, - "supervisoryAuthority": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", - "type": "object", - "title": "SupervisoryAuthority", - "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", - "examples": [ - { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - ], - "properties": { - "name": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the supervisory authority.", - "examples": ["Commissioner for Data Protection"] - }, - "address": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", - "type": "string", - "title": "Address", - "description": "Adress of the supervisory authority.", - "examples": ["Friedrichstrasse 219, 10969 Berlin"] - }, - "country": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", - "type": "string", - "title": "Country", - "description": "Country of the supervisory authority.", - "minLength": 2, - "maxLength": 2, - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", - "type": "string", - "title": "Email", - "description": "Email adress of the supervisory authority.", - "format": "email", - "examples": ["mailbox@privacy-berlin.de"] - }, - "phone": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the supervisory authority.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 444 222 111"] - } - }, - "required": ["name"] - } - } - }, - "automatedDecisionMaking": { - "$id": "#/properties/automatedDecisionMaking", - "type": "object", - "title": "AutomatedDecisionMaking", - "description": "Automated decision making and potentially involved logic. Does include profiling.", - "examples": [ - { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - } - ], - "if": { - "properties": { - "inUse": { - "const": true - } - }, - "required": ["inUse"] - }, - "then": { - "required": ["logicInvolved", "scopeAndIntendedEffects"] - }, - "properties": { - "inUse": { - "$id": "#/properties/automatedDecisionMaking/properties/inUse", - "type": "boolean", - "title": "InUse", - "description": "Is automated decision making in use?", - "default": true, - "examples": [true, false] - }, - "logicInvolved": { - "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", - "type": "string", - "title": "LogicInvolved", - "description": "An explanation about the logic involved to automated decision making.", - "examples": ["The personal data are processed as follows..."] - }, - "scopeAndIntendedEffects": { - "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", - "type": "string", - "title": "ScopeAndIntendedEffects", - "description": "Scope and intended effects of such processing for the data subject.", - "examples": ["From processing follows..."] - } - } - }, - "changesOfPurpose": { - "$id": "#/properties/changesOfPurpose", - "type": "array", - "title": "ChangesOfPurpose", - "description": "Notification of change of purpose.", - "examples": [ - [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ], - "properties": { - "description": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the change of purpose.", - "examples": ["Due to technical requirements..."] - }, - "affectedDataCategories": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", - "type": "array", - "title": "AffectedDataCategories", - "description": "Data categories that are affected from the change of purpose.", - "examples": [["Email adress", "Credit score"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email adress", "Credit score"] - } - ], - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", - "type": "string" - } - }, - "plannedDateOfChange": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", - "type": "string", - "title": "PlannedDateOfChange", - "description": "Specify the planned date to the changes as ISO 8601 string.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-08-20"] - }, - "urlOfNewVersion": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", - "type": "string", - "title": "UrlOfNewVersion", - "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": ["https://greencomp.de/tilt/2"] - } - } - } - ], - "$id": "#/properties/changesOfPurpose/items", - "type": "object" - } - } - }, - "required": [ - "meta", - "controller", - "dataProtectionOfficer", - "dataDisclosed", - "thirdCountryTransfers", - "accessAndDataPortability", - "sources", - "rightToInformation", - "rightToRectificationOrDeletion", - "rightToDataPortability", - "rightToWithdrawConsent", - "rightToComplain", - "automatedDecisionMaking", - "changesOfPurpose" - ] -} +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From 6dd7629a9aac86e1bc467ae28511bba030a971d8 Mon Sep 17 00:00:00 2001 From: louisloechel Date: Tue, 9 May 2023 15:10:23 +0000 Subject: [PATCH 68/80] Prettified Code! --- tilt-schema.json | 2193 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 2192 insertions(+), 1 deletion(-) diff --git a/tilt-schema.json b/tilt-schema.json index e8990e9..3c6236e 100644 --- a/tilt-schema.json +++ b/tilt-schema.json @@ -1 +1,2192 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/Transparency-Information-Language/schema", + "type": "object", + "title": "Root schema of a Transparency Information Language", + "description": "This schema defines the Transparency Information Language", + "examples": [ + { + "meta": { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + }, + "controller": { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + }, + "dataProtectionOfficer": { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "dataDisclosed": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": ["E-mail address"], + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "thirdCountryTransfers": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "accessAndDataPortability": { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + }, + "sources": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "rightToInformation": { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToRectificationOrDeletion": { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + }, + "rightToDataPortability": { + "available": false, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + }, + "rightToWithdrawConsent": { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + }, + "rightToComplain": { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + }, + "automatedDecisionMaking": { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + }, + "changesOfPurpose": [ + { + "description": "Due to techncial requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + } + ], + "properties": { + "meta": { + "$id": "#/properties/meta", + "type": "object", + "title": "Meta", + "description": "Meta information for the identification and verification of the document.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15:53:05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + } + ], + "required": [ + "_id", + "name", + "created", + "modified", + "version", + "language", + "status", + "url", + "_hash" + ], + "properties": { + "_id": { + "$id": "#/properties/meta/properties/_id", + "type": "string", + "title": "_id", + "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "name": { + "$id": "#/properties/meta/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the data controller.", + "examples": ["Green Company"] + }, + "created": { + "$id": "#/properties/meta/properties/created", + "type": "string", + "title": "Created", + "description": "Creation date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "modified": { + "$id": "#/properties/meta/properties/modified", + "type": "string", + "title": "Modified", + "description": "Last modified date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-04-03T15:53:05.929588"] + }, + "version": { + "$id": "#/properties/meta/properties/version", + "type": "integer", + "title": "Version", + "description": "This number serves to version documents of a controller.", + "default": 1, + "minimum": 1, + "examples": [2] + }, + "language": { + "$id": "#/properties/meta/properties/language", + "type": "string", + "title": "Language", + "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", + "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", + "default": "en", + "examples": ["de"] + }, + "status": { + "$id": "#/properties/meta/properties/status", + "type": "string", + "title": "Status", + "description": "The status of an instance can be active or inactive depending on the policy's legal force.", + "default": "active", + "pattern": "^(active|inactive)$", + "examples": ["active", "inactive"] + }, + "url": { + "$id": "#/properties/meta/properties/url", + "type": "string", + "title": "Url", + "description": "URL to this schema.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/privacy"] + }, + "_hash": { + "$id": "#/properties/meta/properties/_hash", + "type": "string", + "title": "_hash", + "description": "The hash is based on one SHA256 calculation of the document.", + "minLength": 64, + "maxLength": 64, + "examples": [ + "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + ] + } + } + }, + "controller": { + "$id": "#/properties/controller", + "type": "object", + "title": "Controller", + "description": "The responsible controller is defined in here.", + "examples": [ + { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "sector": "J" + } + ], + "required": ["name", "address", "country", "representative"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller.", + "examples": ["Green Company AG"] + }, + "division": { + "$id": "#/properties/controller/properties/division", + "type": "string", + "title": "Division", + "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/controller/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the controller.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/controller/properties/country", + "type": "string", + "title": "Country", + "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", + "default": "DE", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "representative": { + "$id": "#/properties/controller/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative is a responsible real person that represents the controller.", + "examples": [ + { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "email"], + "properties": { + "name": { + "$id": "#/properties/controller/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller's representative.", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/controller/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "Email address of the controller's representative.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/controller/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the controller's representative.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["+49 151 1234 5678"] + } + } + }, + "sector": { + "$id": "#/properties/controller/properties/sector", + "type": "string", + "description": "The industry of the controller according to UN ISIC Rev. 4", + "example": "J", + "maxLength": 1, + "pattern": "[A-Z]" + } + } + }, + "dataProtectionOfficer": { + "$id": "#/properties/dataProtectionOfficer", + "type": "object", + "title": "DataProtectionOfficer", + "description": "The Data Protection Officer (DPO) of the controller.", + "examples": [ + { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": ["name", "address", "country", "email"], + "properties": { + "name": { + "$id": "#/properties/dataProtectionOfficer/properties/name", + "type": "string", + "title": "Name", + "description": "The full name of the Data Protection Officer.", + "examples": ["Jane Super"] + }, + "address": { + "$id": "#/properties/dataProtectionOfficer/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the DPO.", + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + }, + "country": { + "$id": "#/properties/dataProtectionOfficer/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the Data Protection officer is located at.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/dataProtectionOfficer/properties/email", + "type": "string", + "title": "Email", + "description": "The contact email address of the Data Protection Officer.", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "phone": { + "$id": "#/properties/dataProtectionOfficer/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the Data Protection Officer (may include country prefix).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 5678"] + } + } + }, + "dataDisclosed": { + "$id": "#/properties/dataDisclosed", + "type": "array", + "title": "DataDisclosed", + "description": "A detailed explanation about which data is disclosed in the processing tasks.", + "examples": [ + [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0", + "title": "AnyOf schema", + "description": "The description of data disclosed.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "properties": { + "_id": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", + "type": "array", + "title": "Category", + "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", + "examples": ["E-mail address"], + "items": { "type": "string" } + }, + "purposes": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", + "type": "array", + "title": "Purposes", + "description": "The purpose for which a data item is processed for.", + "examples": [ + [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", + "title": "AnyOf schema for the purposes.", + "examples": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "properties": { + "purpose": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", + "type": "string", + "title": "Purpose", + "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", + "examples": ["Marketing"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "This schema refers to an exact description of the purpose the data is processed for.", + "examples": [ + "Newsletter will be sent out once a month." + ] + } + }, + "required": ["purpose", "description"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", + "type": "object" + } + }, + "legalBases": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", + "type": "array", + "title": "LegalBases", + "description": "An explanation about the legal bases for the processing of personal data disclosed.", + "examples": [ + [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", + "title": "AnyOf schema for the legal bases of the data disclosed.", + "examples": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + } + ], + "properties": { + "reference": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", + "type": "string", + "title": "Reference", + "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["GDPR-99-1-a"] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the legal basis used.", + "examples": [ + "The data are processed on the basis of Art. 99 GDPR which states..." + ] + } + }, + "required": ["reference"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", + "type": "object" + } + }, + "legitimateInterests": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", + "type": "array", + "title": "LegitimateInterests", + "description": "An explanation about the legitimate interests for the processing of data disclosed.", + "examples": [ + [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", + "title": "AnyOf schema for legitimate interests.", + "examples": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "if": { + "properties": { "exists": { "const": true } }, + "required": ["exists"] + }, + "then": { "required": ["reasoning"] }, + "properties": { + "exists": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", + "type": "boolean", + "title": "Exists", + "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", + "default": false, + "examples": [true, false] + }, + "reasoning": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", + "type": "string", + "title": "Reasoning", + "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", + "examples": [ + "There is an legitimate interest based on ... and is not overwritten because ..." + ] + } + } + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", + "type": "object" + } + }, + "recipients": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", + "type": "array", + "title": "Recipients", + "description": "An explanation about the recipients of the data disclosed.", + "examples": [ + [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { "category": "Responsible Statistical Institutes" } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", + "title": "AnyOf schema if recipients", + "examples": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the third party (recipient).", + "examples": ["Yellow Company AG"] + }, + "division": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", + "type": "string", + "title": "Division", + "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", + "examples": ["Product line e-mobility"] + }, + "address": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", + "type": "string", + "title": "Address", + "description": "The address of the third party (recipient).", + "examples": ["Triana 123, 9999 Seville"] + }, + "country": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "representative": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative of the third party (recipient).", + "examples": [ + { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the representative of the third party (recipient).", + "examples": ["Jane Super"] + }, + "email": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "The email address of the representative of the third party (recipient).", + "format": "email", + "examples": ["contact@yellowcompany.de"] + }, + "phone": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the representative of the third party (recipient).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 151 1234 9876"] + } + } + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", + "type": "string", + "title": "Category", + "description": "The category of the the recipient.", + "examples": ["Marketing content provider"] + } + }, + "required": ["category"] + }, + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", + "title": "Second anyOf", + "examples": [ + { "category": "Responsible Statistical Institutes" } + ], + "properties": { + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", + "type": "string", + "title": "Category", + "description": "This category has to be given, even if the controller is not mentioned explicitly.", + "examples": ["Responsible Statistical Institutes"] + } + }, + "required": ["category"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", + "type": "object" + } + }, + "storage": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", + "type": "array", + "title": "Storage", + "description": "In this section, the duration of storage or storage criteria are given.", + "examples": [ + [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": ["SGB-100-42"], + "aggregationFunction": "max" + } + ], + "properties": { + "temporal": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", + "type": "array", + "title": "Temporal", + "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", + "examples": [ + [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "properties": { + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "The description why the data has to be stored..", + "examples": ["Creating backups."] + }, + "ttl": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", + "type": "string", + "title": "Ttl", + "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", + "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", + "examples": [ + "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + ] + } + }, + "required": ["description", "ttl"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", + "type": "object" + } + }, + "purposeConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", + "type": "array", + "title": "PurposeConditional", + "description": "Specifies the purpose that requires data storage.", + "examples": [ + [ + "Data is stored until the end of the ordering process." + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + "Data is stored until the end of the ordering process." + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", + "type": "string" + } + }, + "legalBasisConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", + "type": "array", + "title": "LegalBasisConditional", + "description": "If the storage is required by law, the respective one has to specified in here.", + "examples": [["SGB-100-42"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", + "title": "First anyOf", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": ["SGB-100-42"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", + "type": "string" + } + }, + "aggregationFunction": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", + "type": "string", + "title": "AggregationFunction", + "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", + "default": "max", + "enum": ["min", "max", "sum", "avg"], + "examples": ["max"] + } + }, + "required": ["aggregationFunction"] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", + "type": "object" + } + }, + "nonDisclosure": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", + "type": "object", + "title": "NonDisclosure", + "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", + "examples": [ + { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + ], + "required": [ + "legalRequirement", + "contractualRegulation", + "obligationToProvide", + "consequences" + ], + "properties": { + "legalRequirement": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", + "type": "boolean", + "title": "LegalRequirement", + "description": "Is there a legal requirement to collect these data?", + "default": false, + "examples": [false, true] + }, + "contractualRegulation": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", + "type": "boolean", + "title": "ContractualRegulation", + "description": "Is there a contractual regulation to collect these data?", + "default": false, + "examples": [false, true] + }, + "obligationToProvide": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", + "type": "boolean", + "title": "ObligationToProvide", + "description": "Is there an obligation for the data subject to provide these data?", + "default": false, + "examples": [false, true] + }, + "consequences": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", + "type": "string", + "title": "Consequences", + "description": "Description of the consequences in the case of non-disclosure.", + "examples": [ + "If the data is not disclosed, the shipment cannot be delivered." + ] + } + } + } + }, + "required": [ + "_id", + "category", + "purposes", + "legalBases", + "legitimateInterests", + "recipients", + "storage", + "nonDisclosure" + ] + } + ], + "$id": "#/properties/dataDisclosed/items", + "type": "object" + } + }, + "thirdCountryTransfers": { + "$id": "#/properties/thirdCountryTransfers", + "type": "array", + "title": "ThirdCountryTransfers", + "description": "This schema refers to the adequacy decisions of any third country transfers.", + "examples": [ + [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "properties": { + "country": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country code of the third country.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": ["ES"] + }, + "adequacyDecision": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", + "type": "object", + "title": "AdequacyDecision", + "examples": [ + { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", + "type": "boolean", + "title": "Available", + "description": "Adequacy decision by the European commission exists?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the adequacy decision by the European commission.", + "examples": [ + "An adequacy decision was made on the 23rd April 2020 by..." + ] + } + } + }, + "appropriateGuarantees": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", + "type": "object", + "title": "AppropriateGuarantees", + "description": "Suitable guarantees according to Art. 45", + "examples": [ + { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", + "type": "boolean", + "title": "Available", + "description": "Do suitable guarantees according to Art. 45 exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", + "type": "string", + "title": "Description", + "description": "Description of suitable guarantees according to Art. 45", + "examples": [ + "Here the appropriate guarantee was formulated by..." + ] + } + } + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", + "type": "object", + "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", + "description": "Presence of enforceable rights and effective remedies", + "examples": [ + { + "available": true, + "description": "These rights are given because of..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", + "type": "boolean", + "title": "Available", + "description": "Presence of enforceable rights and effective remedies?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", + "type": "string", + "title": "Description", + "description": "Description of enforceable rights and effective remedies.", + "examples": ["These rights are given because of..."] + } + } + }, + "standardDataProtectionClause": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", + "type": "object", + "title": "StandardDataProtectionClause", + "description": "Schema on Standard Data Protection clauses.", + "examples": [ + { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", + "type": "boolean", + "title": "Available", + "description": "Does a standard data protection clause exist?", + "default": false, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the standard data protection clause (may include link).", + "examples": [ + "The standard data protection clause which applies here can be found here: ..." + ] + } + } + } + } + } + ], + "$id": "#/properties/thirdCountryTransfers/items", + "type": "object" + } + }, + "accessAndDataPortability": { + "$id": "#/properties/accessAndDataPortability", + "type": "object", + "title": "AccessAndDataPortability", + "description": "Defining the right to access and data portability.", + "examples": [ + { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "administrativeFee": { "amount": 0, "currency": "EUR" }, + "dataFormat": "json" + } + ], + "required": ["available"], + "properties": { + "available": { + "$id": "#/properties/accessAndDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/accessAndDataPortability/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the requirements according to Art. 20 GDPR.", + "examples": [ + "Data access is possible through...", + "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." + ] + }, + "url": { + "$id": "#/properties/accessAndDataPortability/properties/url", + "type": "string", + "title": "Url", + "description": "URL to relevant resources such as access portals.", + "format": "uri-reference", + "examples": ["https://green-bikes.de/access"] + }, + "email": { + "$id": "#/properties/accessAndDataPortability/properties/email", + "type": "string", + "title": "Email", + "description": "Contact email address", + "format": "email", + "examples": ["access@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "description": "ID evidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", + "type": "string" + } + }, + "administrativeFee": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", + "type": "object", + "title": "AdministrativeFee", + "description": "The fee that refers to several copies.", + "examples": [{ "amount": 0, "currency": "EUR" }], + "properties": { + "amount": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", + "type": "number", + "title": "Amount", + "description": "The amount of money to be paid for a copy.", + "default": 0, + "examples": [0] + }, + "currency": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", + "type": "string", + "title": "Currency", + "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", + "default": "EUR", + "minLength": 3, + "maxLength": 3, + "examples": ["EUR"] + } + }, + "required": ["amount", "currency"] + }, + "dataFormats": { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats", + "type": "array", + "title": "DataFormat", + "description": "An explanation about the data format(s) the data is provided in.", + "default": ["json"], + "examples": ["json", "xml"], + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", + "title": "First anyOf", + "examples": ["json", "xml"] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", + "type": "string" + } + } + } + }, + "sources": { + "$id": "#/properties/sources", + "type": "array", + "title": "Sources", + "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", + "examples": [ + [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "properties": { + "_id": { + "$id": "#/properties/sources/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", + "examples": ["f1423cc00509931"] + }, + "dataCategory": { + "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", + "type": "string", + "title": "DataCategory", + "description": "The category the data refer to.", + "examples": ["Creditworthiness"] + }, + "sources": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources", + "type": "array", + "title": "Sources", + "description": "Specify the source(s) where the data come from.", + "examples": [ + [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ], + "properties": { + "description": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the source the data is taken from.", + "examples": [ + "This information could be retrieved from..." + ] + }, + "url": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", + "type": "string", + "title": "Url", + "description": "URL (reference) where the data is taken from.", + "format": "uri-reference", + "examples": ["https://blueCompany.org"] + }, + "publiclyAvailable": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", + "type": "boolean", + "title": "PubliclyAvailable", + "description": "Are these data publicly available?", + "default": false, + "examples": [false, true] + } + }, + "required": ["description", "url", "publiclyAvailable"] + } + ], + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", + "type": "object" + } + } + }, + "required": ["_id", "dataCategory", "sources"] + } + ], + "$id": "#/properties/sources/items", + "type": "object" + } + }, + "rightToInformation": { + "$id": "#/properties/rightToInformation", + "type": "object", + "title": "RightToInformation", + "description": "Refers to the right of information.", + "examples": [ + { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToInformation/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true] + }, + "description": { + "$id": "#/properties/rightToInformation/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the right.", + "examples": [ + "For the right to information please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToInformation/properties/url", + "type": "string", + "title": "Url", + "description": "URL to an online portal.", + "format": "uri-reference", + "examples": ["https://greencompany.org/rightToInformation"] + }, + "email": { + "$id": "#/properties/rightToInformation/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToInformation/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToRectificationOrDeletion": { + "$id": "#/properties/rightToRectificationOrDeletion", + "type": "object", + "title": "RightToRectificationOrDeletion", + "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", + "examples": [ + { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to rectification please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToDataPortability": { + "$id": "#/properties/rightToDataPortability", + "type": "object", + "title": "RightToDataPortability", + "description": "The right to data portability as stated in Art. 20 GDPR.", + "examples": [ + { + "available": true, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [false, true] + }, + "description": { + "$id": "#/properties/rightToDataPortability/properties/description", + "type": "string", + "title": "Description", + "examples": ["Data portability is only possible when..."] + }, + "url": { + "$id": "#/properties/rightToDataPortability/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToDataPortability/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy"] + } + ], + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToWithdrawConsent": { + "$id": "#/properties/rightToWithdrawConsent", + "type": "object", + "title": "RightToWithdrawConsent", + "description": "This schema refers to the right to withdraw consent.", + "examples": [ + { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["Email verification"] + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description"] }, + "properties": { + "available": { + "$id": "#/properties/rightToWithdrawConsent/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToWithdrawConsent/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to withdraw consent please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToWithdrawConsent/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToWithdrawConsent/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email verification"] + } + ], + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToComplain": { + "$id": "#/properties/rightToComplain", + "type": "object", + "title": "RightToComplain", + "description": "This schema refers to the right to complain.", + "examples": [ + { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": ["ID card copy", "Email verification"], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + } + ], + "if": { + "properties": { "available": { "const": true } }, + "required": ["available"] + }, + "then": { "required": ["description", "supervisoryAuthority"] }, + "properties": { + "available": { + "$id": "#/properties/rightToComplain/properties/available", + "type": "boolean", + "title": "Available", + "description": "Is this right available?", + "default": true, + "examples": [true, false] + }, + "description": { + "$id": "#/properties/rightToComplain/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to complain please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToComplain/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": ["https://greencompany.org/rights"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": ["contact@greencompany.de"] + }, + "identificationEvidences": { + "$id": "#/properties/rightToComplain/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [["ID card copy", "Email verification"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": ["ID card copy", "Email verification"] + } + ], + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", + "type": "string" + } + }, + "supervisoryAuthority": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", + "type": "object", + "title": "SupervisoryAuthority", + "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", + "examples": [ + { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + ], + "properties": { + "name": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the supervisory authority.", + "examples": ["Commissioner for Data Protection"] + }, + "address": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", + "type": "string", + "title": "Address", + "description": "Adress of the supervisory authority.", + "examples": ["Friedrichstrasse 219, 10969 Berlin"] + }, + "country": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", + "type": "string", + "title": "Country", + "description": "Country of the supervisory authority.", + "minLength": 2, + "maxLength": 2, + "examples": ["DE"] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", + "type": "string", + "title": "Email", + "description": "Email adress of the supervisory authority.", + "format": "email", + "examples": ["mailbox@privacy-berlin.de"] + }, + "phone": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the supervisory authority.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": ["0049 444 222 111"] + } + }, + "required": ["name"] + } + } + }, + "automatedDecisionMaking": { + "$id": "#/properties/automatedDecisionMaking", + "type": "object", + "title": "AutomatedDecisionMaking", + "description": "Automated decision making and potentially involved logic. Does include profiling.", + "examples": [ + { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + } + ], + "if": { + "properties": { "inUse": { "const": true } }, + "required": ["inUse"] + }, + "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, + "properties": { + "inUse": { + "$id": "#/properties/automatedDecisionMaking/properties/inUse", + "type": "boolean", + "title": "InUse", + "description": "Is automated decision making in use?", + "default": true, + "examples": [true, false] + }, + "logicInvolved": { + "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", + "type": "string", + "title": "LogicInvolved", + "description": "An explanation about the logic involved to automated decision making.", + "examples": ["The personal data are processed as follows..."] + }, + "scopeAndIntendedEffects": { + "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", + "type": "string", + "title": "ScopeAndIntendedEffects", + "description": "Scope and intended effects of such processing for the data subject.", + "examples": ["From processing follows..."] + } + } + }, + "changesOfPurpose": { + "$id": "#/properties/changesOfPurpose", + "type": "array", + "title": "ChangesOfPurpose", + "description": "Notification of change of purpose.", + "examples": [ + [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": ["Email adress", "Credit score"], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ], + "properties": { + "description": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the change of purpose.", + "examples": ["Due to technical requirements..."] + }, + "affectedDataCategories": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", + "type": "array", + "title": "AffectedDataCategories", + "description": "Data categories that are affected from the change of purpose.", + "examples": [["Email adress", "Credit score"]], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", + "title": "First anyOf", + "examples": ["Email adress", "Credit score"] + } + ], + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", + "type": "string" + } + }, + "plannedDateOfChange": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", + "type": "string", + "title": "PlannedDateOfChange", + "description": "Specify the planned date to the changes as ISO 8601 string.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": ["2020-08-20"] + }, + "urlOfNewVersion": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", + "type": "string", + "title": "UrlOfNewVersion", + "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", + "examples": ["https://greencomp.de/tilt/2"] + } + } + } + ], + "$id": "#/properties/changesOfPurpose/items", + "type": "object" + } + } + }, + "required": [ + "meta", + "controller", + "dataProtectionOfficer", + "dataDisclosed", + "thirdCountryTransfers", + "accessAndDataPortability", + "sources", + "rightToInformation", + "rightToRectificationOrDeletion", + "rightToDataPortability", + "rightToWithdrawConsent", + "rightToComplain", + "automatedDecisionMaking", + "changesOfPurpose" + ] +} From 3ef2b86a15a126579caa846795f1c137ded639b5 Mon Sep 17 00:00:00 2001 From: Louis Loechel <57091589+louisloechel@users.noreply.github.com> Date: Tue, 9 May 2023 17:11:52 +0200 Subject: [PATCH 69/80] Delete combined.json --- combined.json | 2192 ------------------------------------------------- 1 file changed, 2192 deletions(-) delete mode 100644 combined.json diff --git a/combined.json b/combined.json deleted file mode 100644 index 3c6236e..0000000 --- a/combined.json +++ /dev/null @@ -1,2192 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/Transparency-Information-Language/schema", - "type": "object", - "title": "Root schema of a Transparency Information Language", - "description": "This schema defines the Transparency Information Language", - "examples": [ - { - "meta": { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - }, - "controller": { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - }, - "dataProtectionOfficer": { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "dataDisclosed": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "thirdCountryTransfers": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "accessAndDataPortability": { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - }, - "sources": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "rightToInformation": { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToRectificationOrDeletion": { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToDataPortability": { - "available": false, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - }, - "rightToWithdrawConsent": { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - }, - "rightToComplain": { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - }, - "automatedDecisionMaking": { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - }, - "changesOfPurpose": [ - { - "description": "Due to techncial requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - } - ], - "properties": { - "meta": { - "$id": "#/properties/meta", - "type": "object", - "title": "Meta", - "description": "Meta information for the identification and verification of the document.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15:53:05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - } - ], - "required": [ - "_id", - "name", - "created", - "modified", - "version", - "language", - "status", - "url", - "_hash" - ], - "properties": { - "_id": { - "$id": "#/properties/meta/properties/_id", - "type": "string", - "title": "_id", - "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "name": { - "$id": "#/properties/meta/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the data controller.", - "examples": ["Green Company"] - }, - "created": { - "$id": "#/properties/meta/properties/created", - "type": "string", - "title": "Created", - "description": "Creation date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "modified": { - "$id": "#/properties/meta/properties/modified", - "type": "string", - "title": "Modified", - "description": "Last modified date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "version": { - "$id": "#/properties/meta/properties/version", - "type": "integer", - "title": "Version", - "description": "This number serves to version documents of a controller.", - "default": 1, - "minimum": 1, - "examples": [2] - }, - "language": { - "$id": "#/properties/meta/properties/language", - "type": "string", - "title": "Language", - "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", - "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", - "default": "en", - "examples": ["de"] - }, - "status": { - "$id": "#/properties/meta/properties/status", - "type": "string", - "title": "Status", - "description": "The status of an instance can be active or inactive depending on the policy's legal force.", - "default": "active", - "pattern": "^(active|inactive)$", - "examples": ["active", "inactive"] - }, - "url": { - "$id": "#/properties/meta/properties/url", - "type": "string", - "title": "Url", - "description": "URL to this schema.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/privacy"] - }, - "_hash": { - "$id": "#/properties/meta/properties/_hash", - "type": "string", - "title": "_hash", - "description": "The hash is based on one SHA256 calculation of the document.", - "minLength": 64, - "maxLength": 64, - "examples": [ - "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" - ] - } - } - }, - "controller": { - "$id": "#/properties/controller", - "type": "object", - "title": "Controller", - "description": "The responsible controller is defined in here.", - "examples": [ - { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "sector": "J" - } - ], - "required": ["name", "address", "country", "representative"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller.", - "examples": ["Green Company AG"] - }, - "division": { - "$id": "#/properties/controller/properties/division", - "type": "string", - "title": "Division", - "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/controller/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the controller.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/controller/properties/country", - "type": "string", - "title": "Country", - "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", - "default": "DE", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "representative": { - "$id": "#/properties/controller/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative is a responsible real person that represents the controller.", - "examples": [ - { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "email"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller's representative.", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/controller/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "Email address of the controller's representative.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/controller/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the controller's representative.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["+49 151 1234 5678"] - } - } - }, - "sector": { - "$id": "#/properties/controller/properties/sector", - "type": "string", - "description": "The industry of the controller according to UN ISIC Rev. 4", - "example": "J", - "maxLength": 1, - "pattern": "[A-Z]" - } - } - }, - "dataProtectionOfficer": { - "$id": "#/properties/dataProtectionOfficer", - "type": "object", - "title": "DataProtectionOfficer", - "description": "The Data Protection Officer (DPO) of the controller.", - "examples": [ - { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "address", "country", "email"], - "properties": { - "name": { - "$id": "#/properties/dataProtectionOfficer/properties/name", - "type": "string", - "title": "Name", - "description": "The full name of the Data Protection Officer.", - "examples": ["Jane Super"] - }, - "address": { - "$id": "#/properties/dataProtectionOfficer/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the DPO.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/dataProtectionOfficer/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the Data Protection officer is located at.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/dataProtectionOfficer/properties/email", - "type": "string", - "title": "Email", - "description": "The contact email address of the Data Protection Officer.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/dataProtectionOfficer/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the Data Protection Officer (may include country prefix).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 5678"] - } - } - }, - "dataDisclosed": { - "$id": "#/properties/dataDisclosed", - "type": "array", - "title": "DataDisclosed", - "description": "A detailed explanation about which data is disclosed in the processing tasks.", - "examples": [ - [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0", - "title": "AnyOf schema", - "description": "The description of data disclosed.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "properties": { - "_id": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", - "type": "array", - "title": "Category", - "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": ["E-mail address"], - "items": { "type": "string" } - }, - "purposes": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", - "type": "array", - "title": "Purposes", - "description": "The purpose for which a data item is processed for.", - "examples": [ - [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", - "title": "AnyOf schema for the purposes.", - "examples": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "properties": { - "purpose": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", - "type": "string", - "title": "Purpose", - "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": ["Marketing"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "This schema refers to an exact description of the purpose the data is processed for.", - "examples": [ - "Newsletter will be sent out once a month." - ] - } - }, - "required": ["purpose", "description"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", - "type": "object" - } - }, - "legalBases": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", - "type": "array", - "title": "LegalBases", - "description": "An explanation about the legal bases for the processing of personal data disclosed.", - "examples": [ - [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", - "title": "AnyOf schema for the legal bases of the data disclosed.", - "examples": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - } - ], - "properties": { - "reference": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", - "type": "string", - "title": "Reference", - "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["GDPR-99-1-a"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the legal basis used.", - "examples": [ - "The data are processed on the basis of Art. 99 GDPR which states..." - ] - } - }, - "required": ["reference"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", - "type": "object" - } - }, - "legitimateInterests": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", - "type": "array", - "title": "LegitimateInterests", - "description": "An explanation about the legitimate interests for the processing of data disclosed.", - "examples": [ - [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", - "title": "AnyOf schema for legitimate interests.", - "examples": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "if": { - "properties": { "exists": { "const": true } }, - "required": ["exists"] - }, - "then": { "required": ["reasoning"] }, - "properties": { - "exists": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", - "type": "boolean", - "title": "Exists", - "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", - "default": false, - "examples": [true, false] - }, - "reasoning": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", - "type": "string", - "title": "Reasoning", - "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", - "examples": [ - "There is an legitimate interest based on ... and is not overwritten because ..." - ] - } - } - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", - "type": "object" - } - }, - "recipients": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", - "type": "array", - "title": "Recipients", - "description": "An explanation about the recipients of the data disclosed.", - "examples": [ - [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", - "title": "AnyOf schema if recipients", - "examples": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the third party (recipient).", - "examples": ["Yellow Company AG"] - }, - "division": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", - "type": "string", - "title": "Division", - "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", - "type": "string", - "title": "Address", - "description": "The address of the third party (recipient).", - "examples": ["Triana 123, 9999 Seville"] - }, - "country": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "representative": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative of the third party (recipient).", - "examples": [ - { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the representative of the third party (recipient).", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "The email address of the representative of the third party (recipient).", - "format": "email", - "examples": ["contact@yellowcompany.de"] - }, - "phone": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the representative of the third party (recipient).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 9876"] - } - } - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", - "type": "string", - "title": "Category", - "description": "The category of the the recipient.", - "examples": ["Marketing content provider"] - } - }, - "required": ["category"] - }, - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", - "title": "Second anyOf", - "examples": [ - { "category": "Responsible Statistical Institutes" } - ], - "properties": { - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", - "type": "string", - "title": "Category", - "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": ["Responsible Statistical Institutes"] - } - }, - "required": ["category"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", - "type": "object" - } - }, - "storage": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", - "type": "array", - "title": "Storage", - "description": "In this section, the duration of storage or storage criteria are given.", - "examples": [ - [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "properties": { - "temporal": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", - "type": "array", - "title": "Temporal", - "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", - "examples": [ - [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "properties": { - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "The description why the data has to be stored..", - "examples": ["Creating backups."] - }, - "ttl": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", - "type": "string", - "title": "Ttl", - "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", - "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", - "examples": [ - "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - ] - } - }, - "required": ["description", "ttl"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", - "type": "object" - } - }, - "purposeConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", - "type": "array", - "title": "PurposeConditional", - "description": "Specifies the purpose that requires data storage.", - "examples": [ - [ - "Data is stored until the end of the ordering process." - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - "Data is stored until the end of the ordering process." - ] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", - "type": "string" - } - }, - "legalBasisConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", - "type": "array", - "title": "LegalBasisConditional", - "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [["SGB-100-42"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", - "title": "First anyOf", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["SGB-100-42"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", - "type": "string" - } - }, - "aggregationFunction": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", - "type": "string", - "title": "AggregationFunction", - "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", - "default": "max", - "enum": ["min", "max", "sum", "avg"], - "examples": ["max"] - } - }, - "required": ["aggregationFunction"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", - "type": "object" - } - }, - "nonDisclosure": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", - "type": "object", - "title": "NonDisclosure", - "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", - "examples": [ - { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - ], - "required": [ - "legalRequirement", - "contractualRegulation", - "obligationToProvide", - "consequences" - ], - "properties": { - "legalRequirement": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", - "type": "boolean", - "title": "LegalRequirement", - "description": "Is there a legal requirement to collect these data?", - "default": false, - "examples": [false, true] - }, - "contractualRegulation": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", - "type": "boolean", - "title": "ContractualRegulation", - "description": "Is there a contractual regulation to collect these data?", - "default": false, - "examples": [false, true] - }, - "obligationToProvide": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", - "type": "boolean", - "title": "ObligationToProvide", - "description": "Is there an obligation for the data subject to provide these data?", - "default": false, - "examples": [false, true] - }, - "consequences": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", - "type": "string", - "title": "Consequences", - "description": "Description of the consequences in the case of non-disclosure.", - "examples": [ - "If the data is not disclosed, the shipment cannot be delivered." - ] - } - } - } - }, - "required": [ - "_id", - "category", - "purposes", - "legalBases", - "legitimateInterests", - "recipients", - "storage", - "nonDisclosure" - ] - } - ], - "$id": "#/properties/dataDisclosed/items", - "type": "object" - } - }, - "thirdCountryTransfers": { - "$id": "#/properties/thirdCountryTransfers", - "type": "array", - "title": "ThirdCountryTransfers", - "description": "This schema refers to the adequacy decisions of any third country transfers.", - "examples": [ - [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "properties": { - "country": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country code of the third country.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "adequacyDecision": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", - "type": "object", - "title": "AdequacyDecision", - "examples": [ - { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", - "type": "boolean", - "title": "Available", - "description": "Adequacy decision by the European commission exists?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the adequacy decision by the European commission.", - "examples": [ - "An adequacy decision was made on the 23rd April 2020 by..." - ] - } - } - }, - "appropriateGuarantees": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", - "type": "object", - "title": "AppropriateGuarantees", - "description": "Suitable guarantees according to Art. 45", - "examples": [ - { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", - "type": "boolean", - "title": "Available", - "description": "Do suitable guarantees according to Art. 45 exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", - "type": "string", - "title": "Description", - "description": "Description of suitable guarantees according to Art. 45", - "examples": [ - "Here the appropriate guarantee was formulated by..." - ] - } - } - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", - "type": "object", - "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", - "description": "Presence of enforceable rights and effective remedies", - "examples": [ - { - "available": true, - "description": "These rights are given because of..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", - "type": "boolean", - "title": "Available", - "description": "Presence of enforceable rights and effective remedies?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", - "type": "string", - "title": "Description", - "description": "Description of enforceable rights and effective remedies.", - "examples": ["These rights are given because of..."] - } - } - }, - "standardDataProtectionClause": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", - "type": "object", - "title": "StandardDataProtectionClause", - "description": "Schema on Standard Data Protection clauses.", - "examples": [ - { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", - "type": "boolean", - "title": "Available", - "description": "Does a standard data protection clause exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the standard data protection clause (may include link).", - "examples": [ - "The standard data protection clause which applies here can be found here: ..." - ] - } - } - } - } - } - ], - "$id": "#/properties/thirdCountryTransfers/items", - "type": "object" - } - }, - "accessAndDataPortability": { - "$id": "#/properties/accessAndDataPortability", - "type": "object", - "title": "AccessAndDataPortability", - "description": "Defining the right to access and data portability.", - "examples": [ - { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - } - ], - "required": ["available"], - "properties": { - "available": { - "$id": "#/properties/accessAndDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/accessAndDataPortability/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the requirements according to Art. 20 GDPR.", - "examples": [ - "Data access is possible through...", - "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." - ] - }, - "url": { - "$id": "#/properties/accessAndDataPortability/properties/url", - "type": "string", - "title": "Url", - "description": "URL to relevant resources such as access portals.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/access"] - }, - "email": { - "$id": "#/properties/accessAndDataPortability/properties/email", - "type": "string", - "title": "Email", - "description": "Contact email address", - "format": "email", - "examples": ["access@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "description": "ID evidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", - "type": "string" - } - }, - "administrativeFee": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", - "type": "object", - "title": "AdministrativeFee", - "description": "The fee that refers to several copies.", - "examples": [{ "amount": 0, "currency": "EUR" }], - "properties": { - "amount": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", - "type": "number", - "title": "Amount", - "description": "The amount of money to be paid for a copy.", - "default": 0, - "examples": [0] - }, - "currency": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", - "type": "string", - "title": "Currency", - "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", - "default": "EUR", - "minLength": 3, - "maxLength": 3, - "examples": ["EUR"] - } - }, - "required": ["amount", "currency"] - }, - "dataFormats": { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats", - "type": "array", - "title": "DataFormat", - "description": "An explanation about the data format(s) the data is provided in.", - "default": ["json"], - "examples": ["json", "xml"], - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", - "title": "First anyOf", - "examples": ["json", "xml"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", - "type": "string" - } - } - } - }, - "sources": { - "$id": "#/properties/sources", - "type": "array", - "title": "Sources", - "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", - "examples": [ - [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "properties": { - "_id": { - "$id": "#/properties/sources/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": ["f1423cc00509931"] - }, - "dataCategory": { - "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", - "type": "string", - "title": "DataCategory", - "description": "The category the data refer to.", - "examples": ["Creditworthiness"] - }, - "sources": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources", - "type": "array", - "title": "Sources", - "description": "Specify the source(s) where the data come from.", - "examples": [ - [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ], - "properties": { - "description": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the source the data is taken from.", - "examples": [ - "This information could be retrieved from..." - ] - }, - "url": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", - "type": "string", - "title": "Url", - "description": "URL (reference) where the data is taken from.", - "format": "uri-reference", - "examples": ["https://blueCompany.org"] - }, - "publiclyAvailable": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", - "type": "boolean", - "title": "PubliclyAvailable", - "description": "Are these data publicly available?", - "default": false, - "examples": [false, true] - } - }, - "required": ["description", "url", "publiclyAvailable"] - } - ], - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", - "type": "object" - } - } - }, - "required": ["_id", "dataCategory", "sources"] - } - ], - "$id": "#/properties/sources/items", - "type": "object" - } - }, - "rightToInformation": { - "$id": "#/properties/rightToInformation", - "type": "object", - "title": "RightToInformation", - "description": "Refers to the right of information.", - "examples": [ - { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToInformation/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/rightToInformation/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the right.", - "examples": [ - "For the right to information please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToInformation/properties/url", - "type": "string", - "title": "Url", - "description": "URL to an online portal.", - "format": "uri-reference", - "examples": ["https://greencompany.org/rightToInformation"] - }, - "email": { - "$id": "#/properties/rightToInformation/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToInformation/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToRectificationOrDeletion": { - "$id": "#/properties/rightToRectificationOrDeletion", - "type": "object", - "title": "RightToRectificationOrDeletion", - "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", - "examples": [ - { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to rectification please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToDataPortability": { - "$id": "#/properties/rightToDataPortability", - "type": "object", - "title": "RightToDataPortability", - "description": "The right to data portability as stated in Art. 20 GDPR.", - "examples": [ - { - "available": true, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [false, true] - }, - "description": { - "$id": "#/properties/rightToDataPortability/properties/description", - "type": "string", - "title": "Description", - "examples": ["Data portability is only possible when..."] - }, - "url": { - "$id": "#/properties/rightToDataPortability/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToDataPortability/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy"] - } - ], - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToWithdrawConsent": { - "$id": "#/properties/rightToWithdrawConsent", - "type": "object", - "title": "RightToWithdrawConsent", - "description": "This schema refers to the right to withdraw consent.", - "examples": [ - { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToWithdrawConsent/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToWithdrawConsent/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to withdraw consent please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToWithdrawConsent/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToWithdrawConsent/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email verification"] - } - ], - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToComplain": { - "$id": "#/properties/rightToComplain", - "type": "object", - "title": "RightToComplain", - "description": "This schema refers to the right to complain.", - "examples": [ - { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description", "supervisoryAuthority"] }, - "properties": { - "available": { - "$id": "#/properties/rightToComplain/properties/available", - "type": "boolean", - "title": "Available", - "description": "Is this right available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToComplain/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to complain please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToComplain/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToComplain/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", - "type": "string" - } - }, - "supervisoryAuthority": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", - "type": "object", - "title": "SupervisoryAuthority", - "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", - "examples": [ - { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - ], - "properties": { - "name": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the supervisory authority.", - "examples": ["Commissioner for Data Protection"] - }, - "address": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", - "type": "string", - "title": "Address", - "description": "Adress of the supervisory authority.", - "examples": ["Friedrichstrasse 219, 10969 Berlin"] - }, - "country": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", - "type": "string", - "title": "Country", - "description": "Country of the supervisory authority.", - "minLength": 2, - "maxLength": 2, - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", - "type": "string", - "title": "Email", - "description": "Email adress of the supervisory authority.", - "format": "email", - "examples": ["mailbox@privacy-berlin.de"] - }, - "phone": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the supervisory authority.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 444 222 111"] - } - }, - "required": ["name"] - } - } - }, - "automatedDecisionMaking": { - "$id": "#/properties/automatedDecisionMaking", - "type": "object", - "title": "AutomatedDecisionMaking", - "description": "Automated decision making and potentially involved logic. Does include profiling.", - "examples": [ - { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - } - ], - "if": { - "properties": { "inUse": { "const": true } }, - "required": ["inUse"] - }, - "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, - "properties": { - "inUse": { - "$id": "#/properties/automatedDecisionMaking/properties/inUse", - "type": "boolean", - "title": "InUse", - "description": "Is automated decision making in use?", - "default": true, - "examples": [true, false] - }, - "logicInvolved": { - "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", - "type": "string", - "title": "LogicInvolved", - "description": "An explanation about the logic involved to automated decision making.", - "examples": ["The personal data are processed as follows..."] - }, - "scopeAndIntendedEffects": { - "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", - "type": "string", - "title": "ScopeAndIntendedEffects", - "description": "Scope and intended effects of such processing for the data subject.", - "examples": ["From processing follows..."] - } - } - }, - "changesOfPurpose": { - "$id": "#/properties/changesOfPurpose", - "type": "array", - "title": "ChangesOfPurpose", - "description": "Notification of change of purpose.", - "examples": [ - [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ], - "properties": { - "description": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the change of purpose.", - "examples": ["Due to technical requirements..."] - }, - "affectedDataCategories": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", - "type": "array", - "title": "AffectedDataCategories", - "description": "Data categories that are affected from the change of purpose.", - "examples": [["Email adress", "Credit score"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email adress", "Credit score"] - } - ], - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", - "type": "string" - } - }, - "plannedDateOfChange": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", - "type": "string", - "title": "PlannedDateOfChange", - "description": "Specify the planned date to the changes as ISO 8601 string.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-08-20"] - }, - "urlOfNewVersion": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", - "type": "string", - "title": "UrlOfNewVersion", - "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": ["https://greencomp.de/tilt/2"] - } - } - } - ], - "$id": "#/properties/changesOfPurpose/items", - "type": "object" - } - } - }, - "required": [ - "meta", - "controller", - "dataProtectionOfficer", - "dataDisclosed", - "thirdCountryTransfers", - "accessAndDataPortability", - "sources", - "rightToInformation", - "rightToRectificationOrDeletion", - "rightToDataPortability", - "rightToWithdrawConsent", - "rightToComplain", - "automatedDecisionMaking", - "changesOfPurpose" - ] -} From 83ac0db02a9881f934c6954281e3d5899319c5ac Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 9 May 2023 15:12:08 +0000 Subject: [PATCH 70/80] combined the file --- tilt-schema.json | 2193 +--------------------------------------------- 1 file changed, 1 insertion(+), 2192 deletions(-) diff --git a/tilt-schema.json b/tilt-schema.json index 3c6236e..e8990e9 100644 --- a/tilt-schema.json +++ b/tilt-schema.json @@ -1,2192 +1 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/Transparency-Information-Language/schema", - "type": "object", - "title": "Root schema of a Transparency Information Language", - "description": "This schema defines the Transparency Information Language", - "examples": [ - { - "meta": { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - }, - "controller": { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - }, - "dataProtectionOfficer": { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "dataDisclosed": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "thirdCountryTransfers": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "accessAndDataPortability": { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - }, - "sources": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "rightToInformation": { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToRectificationOrDeletion": { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - }, - "rightToDataPortability": { - "available": false, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - }, - "rightToWithdrawConsent": { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - }, - "rightToComplain": { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - }, - "automatedDecisionMaking": { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - }, - "changesOfPurpose": [ - { - "description": "Due to techncial requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - } - ], - "properties": { - "meta": { - "$id": "#/properties/meta", - "type": "object", - "title": "Meta", - "description": "Meta information for the identification and verification of the document.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "name": "Green Company", - "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15:53:05.929588", - "version": 2, - "language": "de", - "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" - } - ], - "required": [ - "_id", - "name", - "created", - "modified", - "version", - "language", - "status", - "url", - "_hash" - ], - "properties": { - "_id": { - "$id": "#/properties/meta/properties/_id", - "type": "string", - "title": "_id", - "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "name": { - "$id": "#/properties/meta/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the data controller.", - "examples": ["Green Company"] - }, - "created": { - "$id": "#/properties/meta/properties/created", - "type": "string", - "title": "Created", - "description": "Creation date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "modified": { - "$id": "#/properties/meta/properties/modified", - "type": "string", - "title": "Modified", - "description": "Last modified date of the document as an ISO-8601 time code.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] - }, - "version": { - "$id": "#/properties/meta/properties/version", - "type": "integer", - "title": "Version", - "description": "This number serves to version documents of a controller.", - "default": 1, - "minimum": 1, - "examples": [2] - }, - "language": { - "$id": "#/properties/meta/properties/language", - "type": "string", - "title": "Language", - "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", - "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", - "default": "en", - "examples": ["de"] - }, - "status": { - "$id": "#/properties/meta/properties/status", - "type": "string", - "title": "Status", - "description": "The status of an instance can be active or inactive depending on the policy's legal force.", - "default": "active", - "pattern": "^(active|inactive)$", - "examples": ["active", "inactive"] - }, - "url": { - "$id": "#/properties/meta/properties/url", - "type": "string", - "title": "Url", - "description": "URL to this schema.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/privacy"] - }, - "_hash": { - "$id": "#/properties/meta/properties/_hash", - "type": "string", - "title": "_hash", - "description": "The hash is based on one SHA256 calculation of the document.", - "minLength": 64, - "maxLength": 64, - "examples": [ - "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" - ] - } - } - }, - "controller": { - "$id": "#/properties/controller", - "type": "object", - "title": "Controller", - "description": "The responsible controller is defined in here.", - "examples": [ - { - "name": "Green Company AG", - "division": "Product line e-mobility", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "representative": { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - }, - "sector": "J" - } - ], - "required": ["name", "address", "country", "representative"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller.", - "examples": ["Green Company AG"] - }, - "division": { - "$id": "#/properties/controller/properties/division", - "type": "string", - "title": "Division", - "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/controller/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the controller.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/controller/properties/country", - "type": "string", - "title": "Country", - "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", - "default": "DE", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "representative": { - "$id": "#/properties/controller/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative is a responsible real person that represents the controller.", - "examples": [ - { - "name": "Jane Super", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "email"], - "properties": { - "name": { - "$id": "#/properties/controller/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the controller's representative.", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/controller/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "Email address of the controller's representative.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/controller/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the controller's representative.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["+49 151 1234 5678"] - } - } - }, - "sector": { - "$id": "#/properties/controller/properties/sector", - "type": "string", - "description": "The industry of the controller according to UN ISIC Rev. 4", - "example": "J", - "maxLength": 1, - "pattern": "[A-Z]" - } - } - }, - "dataProtectionOfficer": { - "$id": "#/properties/dataProtectionOfficer", - "type": "object", - "title": "DataProtectionOfficer", - "description": "The Data Protection Officer (DPO) of the controller.", - "examples": [ - { - "name": "Jane Super", - "address": "Wolfsburger Ring 2, 38440 Berlin", - "country": "DE", - "email": "contact@greencompany.de", - "phone": "0049 151 1234 5678" - } - ], - "required": ["name", "address", "country", "email"], - "properties": { - "name": { - "$id": "#/properties/dataProtectionOfficer/properties/name", - "type": "string", - "title": "Name", - "description": "The full name of the Data Protection Officer.", - "examples": ["Jane Super"] - }, - "address": { - "$id": "#/properties/dataProtectionOfficer/properties/address", - "type": "string", - "title": "Address", - "description": "Address of the DPO.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] - }, - "country": { - "$id": "#/properties/dataProtectionOfficer/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the Data Protection officer is located at.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/dataProtectionOfficer/properties/email", - "type": "string", - "title": "Email", - "description": "The contact email address of the Data Protection Officer.", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "phone": { - "$id": "#/properties/dataProtectionOfficer/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the Data Protection Officer (may include country prefix).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 5678"] - } - } - }, - "dataDisclosed": { - "$id": "#/properties/dataDisclosed", - "type": "array", - "title": "DataDisclosed", - "description": "A detailed explanation about which data is disclosed in the processing tasks.", - "examples": [ - [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0", - "title": "AnyOf schema", - "description": "The description of data disclosed.", - "examples": [ - { - "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", - "purposes": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "legalBases": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ], - "legitimateInterests": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "recipients": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ], - "storage": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "nonDisclosure": { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - } - ], - "properties": { - "_id": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", - "type": "array", - "title": "Category", - "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": ["E-mail address"], - "items": { "type": "string" } - }, - "purposes": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", - "type": "array", - "title": "Purposes", - "description": "The purpose for which a data item is processed for.", - "examples": [ - [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", - "title": "AnyOf schema for the purposes.", - "examples": [ - { - "purpose": "Marketing", - "description": "Newsletter will be sent out once a month." - } - ], - "properties": { - "purpose": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", - "type": "string", - "title": "Purpose", - "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": ["Marketing"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "This schema refers to an exact description of the purpose the data is processed for.", - "examples": [ - "Newsletter will be sent out once a month." - ] - } - }, - "required": ["purpose", "description"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", - "type": "object" - } - }, - "legalBases": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", - "type": "array", - "title": "LegalBases", - "description": "An explanation about the legal bases for the processing of personal data disclosed.", - "examples": [ - [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - }, - { - "reference": "BDSG-42-5", - "description": "BDSG-42-5 refers to the processing of personal data within..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", - "title": "AnyOf schema for the legal bases of the data disclosed.", - "examples": [ - { - "reference": "GDPR-99-1-a", - "description": "The data are processed on the basis of Art. 99 GDPR which states..." - } - ], - "properties": { - "reference": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", - "type": "string", - "title": "Reference", - "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["GDPR-99-1-a"] - }, - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the legal basis used.", - "examples": [ - "The data are processed on the basis of Art. 99 GDPR which states..." - ] - } - }, - "required": ["reference"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", - "type": "object" - } - }, - "legitimateInterests": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", - "type": "array", - "title": "LegitimateInterests", - "description": "An explanation about the legitimate interests for the processing of data disclosed.", - "examples": [ - [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", - "title": "AnyOf schema for legitimate interests.", - "examples": [ - { - "exists": true, - "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." - } - ], - "if": { - "properties": { "exists": { "const": true } }, - "required": ["exists"] - }, - "then": { "required": ["reasoning"] }, - "properties": { - "exists": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", - "type": "boolean", - "title": "Exists", - "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", - "default": false, - "examples": [true, false] - }, - "reasoning": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", - "type": "string", - "title": "Reasoning", - "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", - "examples": [ - "There is an legitimate interest based on ... and is not overwritten because ..." - ] - } - } - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", - "type": "object" - } - }, - "recipients": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", - "type": "array", - "title": "Recipients", - "description": "An explanation about the recipients of the data disclosed.", - "examples": [ - [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - }, - { "category": "Responsible Statistical Institutes" } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", - "title": "AnyOf schema if recipients", - "examples": [ - { - "name": "Yellow Company AG", - "division": "Product line e-mobility", - "address": "Triana 123, 9999 Seville", - "country": "ES", - "representative": { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - }, - "category": "Marketing content provider" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the third party (recipient).", - "examples": ["Yellow Company AG"] - }, - "division": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", - "type": "string", - "title": "Division", - "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": ["Product line e-mobility"] - }, - "address": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", - "type": "string", - "title": "Address", - "description": "The address of the third party (recipient).", - "examples": ["Triana 123, 9999 Seville"] - }, - "country": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "representative": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", - "type": "object", - "title": "Representative", - "description": "The representative of the third party (recipient).", - "examples": [ - { - "name": "Jane Super", - "email": "contact@yellowcompany.de", - "phone": "0049 151 1234 9876" - } - ], - "properties": { - "name": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", - "type": "string", - "title": "Name", - "description": "The name of the representative of the third party (recipient).", - "examples": ["Jane Super"] - }, - "email": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", - "type": "string", - "title": "Email", - "description": "The email address of the representative of the third party (recipient).", - "format": "email", - "examples": ["contact@yellowcompany.de"] - }, - "phone": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", - "type": "string", - "title": "Phone", - "description": "The phone number of the representative of the third party (recipient).", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 9876"] - } - } - }, - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", - "type": "string", - "title": "Category", - "description": "The category of the the recipient.", - "examples": ["Marketing content provider"] - } - }, - "required": ["category"] - }, - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", - "title": "Second anyOf", - "examples": [ - { "category": "Responsible Statistical Institutes" } - ], - "properties": { - "category": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", - "type": "string", - "title": "Category", - "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": ["Responsible Statistical Institutes"] - } - }, - "required": ["category"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", - "type": "object" - } - }, - "storage": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", - "type": "array", - "title": "Storage", - "description": "In this section, the duration of storage or storage criteria are given.", - "examples": [ - [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "temporal": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "purposeConditional": [ - "Data is stored until the end of the ordering process." - ], - "legalBasisConditional": ["SGB-100-42"], - "aggregationFunction": "max" - } - ], - "properties": { - "temporal": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", - "type": "array", - "title": "Temporal", - "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", - "examples": [ - [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - }, - { - "description": "Finishing ordering process.", - "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Creating backups.", - "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - } - ], - "properties": { - "description": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "The description why the data has to be stored..", - "examples": ["Creating backups."] - }, - "ttl": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", - "type": "string", - "title": "Ttl", - "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", - "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", - "examples": [ - "2005-08-09T18:31:42P3Y6M4DT12H30M17S" - ] - } - }, - "required": ["description", "ttl"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", - "type": "object" - } - }, - "purposeConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", - "type": "array", - "title": "PurposeConditional", - "description": "Specifies the purpose that requires data storage.", - "examples": [ - [ - "Data is stored until the end of the ordering process." - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - "Data is stored until the end of the ordering process." - ] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", - "type": "string" - } - }, - "legalBasisConditional": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", - "type": "array", - "title": "LegalBasisConditional", - "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [["SGB-100-42"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", - "title": "First anyOf", - "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["SGB-100-42"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", - "type": "string" - } - }, - "aggregationFunction": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", - "type": "string", - "title": "AggregationFunction", - "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", - "default": "max", - "enum": ["min", "max", "sum", "avg"], - "examples": ["max"] - } - }, - "required": ["aggregationFunction"] - } - ], - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", - "type": "object" - } - }, - "nonDisclosure": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", - "type": "object", - "title": "NonDisclosure", - "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", - "examples": [ - { - "legalRequirement": false, - "contractualRegulation": false, - "obligationToProvide": false, - "consequences": "If the data is not disclosed, the shipment cannot be delivered." - } - ], - "required": [ - "legalRequirement", - "contractualRegulation", - "obligationToProvide", - "consequences" - ], - "properties": { - "legalRequirement": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", - "type": "boolean", - "title": "LegalRequirement", - "description": "Is there a legal requirement to collect these data?", - "default": false, - "examples": [false, true] - }, - "contractualRegulation": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", - "type": "boolean", - "title": "ContractualRegulation", - "description": "Is there a contractual regulation to collect these data?", - "default": false, - "examples": [false, true] - }, - "obligationToProvide": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", - "type": "boolean", - "title": "ObligationToProvide", - "description": "Is there an obligation for the data subject to provide these data?", - "default": false, - "examples": [false, true] - }, - "consequences": { - "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", - "type": "string", - "title": "Consequences", - "description": "Description of the consequences in the case of non-disclosure.", - "examples": [ - "If the data is not disclosed, the shipment cannot be delivered." - ] - } - } - } - }, - "required": [ - "_id", - "category", - "purposes", - "legalBases", - "legitimateInterests", - "recipients", - "storage", - "nonDisclosure" - ] - } - ], - "$id": "#/properties/dataDisclosed/items", - "type": "object" - } - }, - "thirdCountryTransfers": { - "$id": "#/properties/thirdCountryTransfers", - "type": "array", - "title": "ThirdCountryTransfers", - "description": "This schema refers to the adequacy decisions of any third country transfers.", - "examples": [ - [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", - "title": "AnyOf schema", - "examples": [ - { - "country": "ES", - "adequacyDecision": { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - }, - "appropriateGuarantees": { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "available": true, - "description": "These rights are given because of..." - }, - "standardDataProtectionClause": { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - } - ], - "properties": { - "country": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", - "type": "string", - "title": "Country", - "description": "The country code of the third country.", - "minLength": 2, - "maxLength": 2, - "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] - }, - "adequacyDecision": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", - "type": "object", - "title": "AdequacyDecision", - "examples": [ - { - "available": true, - "description": "An adequacy decision was made on the 23rd April 2020 by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", - "type": "boolean", - "title": "Available", - "description": "Adequacy decision by the European commission exists?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the adequacy decision by the European commission.", - "examples": [ - "An adequacy decision was made on the 23rd April 2020 by..." - ] - } - } - }, - "appropriateGuarantees": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", - "type": "object", - "title": "AppropriateGuarantees", - "description": "Suitable guarantees according to Art. 45", - "examples": [ - { - "available": true, - "description": "Here the appropriate guarantee was formulated by..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", - "type": "boolean", - "title": "Available", - "description": "Do suitable guarantees according to Art. 45 exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", - "type": "string", - "title": "Description", - "description": "Description of suitable guarantees according to Art. 45", - "examples": [ - "Here the appropriate guarantee was formulated by..." - ] - } - } - }, - "presenceOfEnforceableRightsAndEffectiveRemedies": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", - "type": "object", - "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", - "description": "Presence of enforceable rights and effective remedies", - "examples": [ - { - "available": true, - "description": "These rights are given because of..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", - "type": "boolean", - "title": "Available", - "description": "Presence of enforceable rights and effective remedies?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", - "type": "string", - "title": "Description", - "description": "Description of enforceable rights and effective remedies.", - "examples": ["These rights are given because of..."] - } - } - }, - "standardDataProtectionClause": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", - "type": "object", - "title": "StandardDataProtectionClause", - "description": "Schema on Standard Data Protection clauses.", - "examples": [ - { - "available": true, - "description": "The standard data protection clause which applies here can be found here: ..." - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", - "type": "boolean", - "title": "Available", - "description": "Does a standard data protection clause exist?", - "default": false, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", - "type": "string", - "title": "Description", - "description": "An explanation about the standard data protection clause (may include link).", - "examples": [ - "The standard data protection clause which applies here can be found here: ..." - ] - } - } - } - } - } - ], - "$id": "#/properties/thirdCountryTransfers/items", - "type": "object" - } - }, - "accessAndDataPortability": { - "$id": "#/properties/accessAndDataPortability", - "type": "object", - "title": "AccessAndDataPortability", - "description": "Defining the right to access and data portability.", - "examples": [ - { - "available": true, - "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", - "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "administrativeFee": { "amount": 0, "currency": "EUR" }, - "dataFormat": "json" - } - ], - "required": ["available"], - "properties": { - "available": { - "$id": "#/properties/accessAndDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/accessAndDataPortability/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the requirements according to Art. 20 GDPR.", - "examples": [ - "Data access is possible through...", - "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." - ] - }, - "url": { - "$id": "#/properties/accessAndDataPortability/properties/url", - "type": "string", - "title": "Url", - "description": "URL to relevant resources such as access portals.", - "format": "uri-reference", - "examples": ["https://green-bikes.de/access"] - }, - "email": { - "$id": "#/properties/accessAndDataPortability/properties/email", - "type": "string", - "title": "Email", - "description": "Contact email address", - "format": "email", - "examples": ["access@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "description": "ID evidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", - "type": "string" - } - }, - "administrativeFee": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", - "type": "object", - "title": "AdministrativeFee", - "description": "The fee that refers to several copies.", - "examples": [{ "amount": 0, "currency": "EUR" }], - "properties": { - "amount": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", - "type": "number", - "title": "Amount", - "description": "The amount of money to be paid for a copy.", - "default": 0, - "examples": [0] - }, - "currency": { - "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", - "type": "string", - "title": "Currency", - "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", - "default": "EUR", - "minLength": 3, - "maxLength": 3, - "examples": ["EUR"] - } - }, - "required": ["amount", "currency"] - }, - "dataFormats": { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats", - "type": "array", - "title": "DataFormat", - "description": "An explanation about the data format(s) the data is provided in.", - "default": ["json"], - "examples": ["json", "xml"], - "items": { - "anyOf": [ - { - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", - "title": "First anyOf", - "examples": ["json", "xml"] - } - ], - "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", - "type": "string" - } - } - } - }, - "sources": { - "$id": "#/properties/sources", - "type": "array", - "title": "Sources", - "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", - "examples": [ - [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "_id": "f1423cc00509931", - "dataCategory": "Creditworthiness", - "sources": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - } - ], - "properties": { - "_id": { - "$id": "#/properties/sources/items/anyOf/0/properties/_id", - "type": "string", - "title": "_id", - "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": ["f1423cc00509931"] - }, - "dataCategory": { - "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", - "type": "string", - "title": "DataCategory", - "description": "The category the data refer to.", - "examples": ["Creditworthiness"] - }, - "sources": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources", - "type": "array", - "title": "Sources", - "description": "Specify the source(s) where the data come from.", - "examples": [ - [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false - } - ], - "properties": { - "description": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the source the data is taken from.", - "examples": [ - "This information could be retrieved from..." - ] - }, - "url": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", - "type": "string", - "title": "Url", - "description": "URL (reference) where the data is taken from.", - "format": "uri-reference", - "examples": ["https://blueCompany.org"] - }, - "publiclyAvailable": { - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", - "type": "boolean", - "title": "PubliclyAvailable", - "description": "Are these data publicly available?", - "default": false, - "examples": [false, true] - } - }, - "required": ["description", "url", "publiclyAvailable"] - } - ], - "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", - "type": "object" - } - } - }, - "required": ["_id", "dataCategory", "sources"] - } - ], - "$id": "#/properties/sources/items", - "type": "object" - } - }, - "rightToInformation": { - "$id": "#/properties/rightToInformation", - "type": "object", - "title": "RightToInformation", - "description": "Refers to the right of information.", - "examples": [ - { - "available": true, - "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToInformation/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true] - }, - "description": { - "$id": "#/properties/rightToInformation/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the right.", - "examples": [ - "For the right to information please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToInformation/properties/url", - "type": "string", - "title": "Url", - "description": "URL to an online portal.", - "format": "uri-reference", - "examples": ["https://greencompany.org/rightToInformation"] - }, - "email": { - "$id": "#/properties/rightToInformation/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToInformation/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToRectificationOrDeletion": { - "$id": "#/properties/rightToRectificationOrDeletion", - "type": "object", - "title": "RightToRectificationOrDeletion", - "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", - "examples": [ - { - "available": true, - "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/available", - "type": "boolean", - "title": "Available", - "description": "Possibility available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to rectification please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToDataPortability": { - "$id": "#/properties/rightToDataPortability", - "type": "object", - "title": "RightToDataPortability", - "description": "The right to data portability as stated in Art. 20 GDPR.", - "examples": [ - { - "available": true, - "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToDataPortability/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [false, true] - }, - "description": { - "$id": "#/properties/rightToDataPortability/properties/description", - "type": "string", - "title": "Description", - "examples": ["Data portability is only possible when..."] - }, - "url": { - "$id": "#/properties/rightToDataPortability/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToDataPortability/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy"] - } - ], - "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToWithdrawConsent": { - "$id": "#/properties/rightToWithdrawConsent", - "type": "object", - "title": "RightToWithdrawConsent", - "description": "This schema refers to the right to withdraw consent.", - "examples": [ - { - "available": true, - "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description"] }, - "properties": { - "available": { - "$id": "#/properties/rightToWithdrawConsent/properties/available", - "type": "boolean", - "title": "Available", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToWithdrawConsent/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to withdraw consent please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToWithdrawConsent/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToWithdrawConsent/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email verification"] - } - ], - "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", - "type": "string" - } - } - } - }, - "rightToComplain": { - "$id": "#/properties/rightToComplain", - "type": "object", - "title": "RightToComplain", - "description": "This schema refers to the right to complain.", - "examples": [ - { - "available": true, - "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", - "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], - "supervisoryAuthority": { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - } - ], - "if": { - "properties": { "available": { "const": true } }, - "required": ["available"] - }, - "then": { "required": ["description", "supervisoryAuthority"] }, - "properties": { - "available": { - "$id": "#/properties/rightToComplain/properties/available", - "type": "boolean", - "title": "Available", - "description": "Is this right available?", - "default": true, - "examples": [true, false] - }, - "description": { - "$id": "#/properties/rightToComplain/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "For the right to complain please use this contact form and..." - ] - }, - "url": { - "$id": "#/properties/rightToComplain/properties/url", - "type": "string", - "title": "Url", - "format": "uri-reference", - "examples": ["https://greencompany.org/rights"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/email", - "type": "string", - "title": "Email", - "format": "email", - "examples": ["contact@greencompany.de"] - }, - "identificationEvidences": { - "$id": "#/properties/rightToComplain/properties/identificationEvidences", - "type": "array", - "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", - "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] - } - ], - "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", - "type": "string" - } - }, - "supervisoryAuthority": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", - "type": "object", - "title": "SupervisoryAuthority", - "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", - "examples": [ - { - "name": "Commissioner for Data Protection", - "address": "Friedrichstrasse 219, 10969 Berlin", - "country": "DE", - "email": "mailbox@privacy-berlin.de", - "phone": "0049 444 222 111" - } - ], - "properties": { - "name": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", - "type": "string", - "title": "Name", - "description": "Name of the supervisory authority.", - "examples": ["Commissioner for Data Protection"] - }, - "address": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", - "type": "string", - "title": "Address", - "description": "Adress of the supervisory authority.", - "examples": ["Friedrichstrasse 219, 10969 Berlin"] - }, - "country": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", - "type": "string", - "title": "Country", - "description": "Country of the supervisory authority.", - "minLength": 2, - "maxLength": 2, - "examples": ["DE"] - }, - "email": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", - "type": "string", - "title": "Email", - "description": "Email adress of the supervisory authority.", - "format": "email", - "examples": ["mailbox@privacy-berlin.de"] - }, - "phone": { - "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", - "type": "string", - "title": "Phone", - "description": "Phone number of the supervisory authority.", - "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 444 222 111"] - } - }, - "required": ["name"] - } - } - }, - "automatedDecisionMaking": { - "$id": "#/properties/automatedDecisionMaking", - "type": "object", - "title": "AutomatedDecisionMaking", - "description": "Automated decision making and potentially involved logic. Does include profiling.", - "examples": [ - { - "inUse": true, - "logicInvolved": "The personal data are processed as follows...", - "scopeAndIntendedEffects": "From processing follows..." - } - ], - "if": { - "properties": { "inUse": { "const": true } }, - "required": ["inUse"] - }, - "then": { "required": ["logicInvolved", "scopeAndIntendedEffects"] }, - "properties": { - "inUse": { - "$id": "#/properties/automatedDecisionMaking/properties/inUse", - "type": "boolean", - "title": "InUse", - "description": "Is automated decision making in use?", - "default": true, - "examples": [true, false] - }, - "logicInvolved": { - "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", - "type": "string", - "title": "LogicInvolved", - "description": "An explanation about the logic involved to automated decision making.", - "examples": ["The personal data are processed as follows..."] - }, - "scopeAndIntendedEffects": { - "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", - "type": "string", - "title": "ScopeAndIntendedEffects", - "description": "Scope and intended effects of such processing for the data subject.", - "examples": ["From processing follows..."] - } - } - }, - "changesOfPurpose": { - "$id": "#/properties/changesOfPurpose", - "type": "array", - "title": "ChangesOfPurpose", - "description": "Notification of change of purpose.", - "examples": [ - [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ] - ], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0", - "title": "First anyOf", - "examples": [ - { - "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], - "plannedDateOfChange": "2020-08-20", - "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" - } - ], - "properties": { - "description": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", - "type": "string", - "title": "Description", - "description": "Description of the change of purpose.", - "examples": ["Due to technical requirements..."] - }, - "affectedDataCategories": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", - "type": "array", - "title": "AffectedDataCategories", - "description": "Data categories that are affected from the change of purpose.", - "examples": [["Email adress", "Credit score"]], - "additionalItems": true, - "items": { - "anyOf": [ - { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", - "title": "First anyOf", - "examples": ["Email adress", "Credit score"] - } - ], - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", - "type": "string" - } - }, - "plannedDateOfChange": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", - "type": "string", - "title": "PlannedDateOfChange", - "description": "Specify the planned date to the changes as ISO 8601 string.", - "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-08-20"] - }, - "urlOfNewVersion": { - "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", - "type": "string", - "title": "UrlOfNewVersion", - "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": ["https://greencomp.de/tilt/2"] - } - } - } - ], - "$id": "#/properties/changesOfPurpose/items", - "type": "object" - } - } - }, - "required": [ - "meta", - "controller", - "dataProtectionOfficer", - "dataDisclosed", - "thirdCountryTransfers", - "accessAndDataPortability", - "sources", - "rightToInformation", - "rightToRectificationOrDeletion", - "rightToDataPortability", - "rightToWithdrawConsent", - "rightToComplain", - "automatedDecisionMaking", - "changesOfPurpose" - ] -} +{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file From ce498139f4f52c560b0912033c8ff007c2c13a15 Mon Sep 17 00:00:00 2001 From: Thomas Janke Date: Thu, 11 May 2023 17:14:57 +0200 Subject: [PATCH 71/80] New split / recompile scripts --- .github/workflows/main.yaml | 26 +- scripts/extract_example.py | 15 + scripts/recompile.py | 30 + scripts/split.py | 23 + tilt-schema.json | 2671 ++++++++++++++++- tilt.json | 19 +- tilt_schema/00_$schema.json | 1 - tilt_schema/01_$id.json | 1 - tilt_schema/02_type.json | 1 - tilt_schema/03_title.json | 1 - tilt_schema/04_description.json | 1 - tilt_schema/05_examples.json | 1 - tilt_schema/07_required.json | 1 - tilt_schema/properties/00_meta.json | 126 +- tilt_schema/properties/01_controller.json | 125 +- .../properties/02_dataProtectionOfficer.json | 74 +- tilt_schema/properties/03_dataDisclosed.json | 807 ++++- .../properties/04_thirdCountryTransfers.json | 271 +- .../05_accessAndDataPortability.json | 163 +- tilt_schema/properties/06_sources.json | 141 +- .../properties/07_rightToInformation.json | 100 +- .../08_rightToRectificationOrDeletion.json | 99 +- .../properties/09_rightToDataPortability.json | 95 +- .../properties/10_rightToWithdrawConsent.json | 95 +- .../properties/11_rightToComplain.json | 176 +- .../12_automatedDecisionMaking.json | 61 +- .../properties/13_changesOfPurpose.json | 99 +- tilt_schema/recompile.py | 71 - tilt_schema/root_schema.json | 251 ++ tilt_schema/split.ipynb | 235 -- 30 files changed, 5419 insertions(+), 361 deletions(-) create mode 100644 scripts/extract_example.py create mode 100644 scripts/recompile.py create mode 100644 scripts/split.py delete mode 100644 tilt_schema/00_$schema.json delete mode 100644 tilt_schema/01_$id.json delete mode 100644 tilt_schema/02_type.json delete mode 100644 tilt_schema/03_title.json delete mode 100644 tilt_schema/04_description.json delete mode 100644 tilt_schema/05_examples.json delete mode 100644 tilt_schema/07_required.json delete mode 100644 tilt_schema/recompile.py create mode 100644 tilt_schema/root_schema.json delete mode 100644 tilt_schema/split.ipynb diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 0a3fffc..a3ba584 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -29,32 +29,12 @@ jobs: - name: Run Python script run: | - python tilt_schema/recompile.py + python scripts/recompile.py + python scripts/extract_example.py git config user.name github-actions git config user.email github-actions@github.com git pull git add . - git commit --allow-empty -m "combined the file" + git commit -m "combined the file" || true git push - - prettify: - needs: reconstruct - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - # Make sure the actual branch is checked out when running on pull requests - ref: ${{ github.head_ref }} - repository: ${{ github.repository }} - - - name: Pull changes from remote repository - run: git pull - - - name: Prettify code - uses: creyD/prettier_action@v4.3 - with: - # This part is also where you can pass other options, for example: - prettier_options: --write combined.json tilt-schema.json diff --git a/scripts/extract_example.py b/scripts/extract_example.py new file mode 100644 index 0000000..ddc217b --- /dev/null +++ b/scripts/extract_example.py @@ -0,0 +1,15 @@ +import json +from pathlib import Path + +base_path = Path( __file__ ).parent.parent +tilt_schema_path = base_path / Path("tilt_schema") +tilt_schema_path.mkdir(exist_ok=True) + +indent = 2 + +root_schema = None +with open(tilt_schema_path / Path("root_schema.json"), "r") as f: + root_schema = json.load(f) + +with open(base_path / Path("tilt.json"), "w") as f: + json.dump(root_schema["examples"][0], f, indent=indent) \ No newline at end of file diff --git a/scripts/recompile.py b/scripts/recompile.py new file mode 100644 index 0000000..f62e832 --- /dev/null +++ b/scripts/recompile.py @@ -0,0 +1,30 @@ +import json +from pathlib import Path +import re + +base_path = Path( __file__ ).parent.parent +tilt_schema_path = base_path / Path("tilt_schema") +tilt_schema_path.mkdir(exist_ok=True) + +indent = 2 + +root_schema = None +with open(tilt_schema_path / Path("root_schema.json"), "r") as f: + root_schema = json.load(f) + +properties = root_schema["properties"] + +pattern = re.compile("[0-9]{2}_(\w+).json") +properties_path = tilt_schema_path / Path("properties") +for path in sorted(properties_path.glob("*.json")): + match = pattern.match(path.name) + key = match.group(1) + print(path.name) + if match: + with open(path, 'r') as f: + properties[key] = json.load(f) + + + +with open(base_path / Path("tilt-schema.json"), "w") as f: + json.dump(root_schema, f, indent=indent) diff --git a/scripts/split.py b/scripts/split.py new file mode 100644 index 0000000..ae36a50 --- /dev/null +++ b/scripts/split.py @@ -0,0 +1,23 @@ +import json +from pathlib import Path + +base_path = Path( __file__ ).parent.parent +tilt_schema_path = base_path / Path("tilt_schema") +tilt_schema_path.mkdir(exist_ok=True) + +indent = 2 + +with open(base_path / Path("tilt-schema.json"),'r') as f: + tilt_schema = json.load(f) + +with open(tilt_schema_path / Path("root_schema.json"), "w") as f: + copy_tilt_schema = tilt_schema.copy() + copy_tilt_schema["properties"] = {} + json.dump(copy_tilt_schema, f, indent=indent) + + +for i, (key, value) in enumerate(tilt_schema["properties"].items()): + path = tilt_schema_path / Path(f"properties/{i:02d}_{key}.json") + path.parent.mkdir(exist_ok=True, parents=True) + with open(path, 'w') as f: + json.dump(value, f, indent=indent) diff --git a/tilt-schema.json b/tilt-schema.json index e8990e9..dcb2c09 100644 --- a/tilt-schema.json +++ b/tilt-schema.json @@ -1 +1,2670 @@ -{"$schema": "http://json-schema.org/draft-07/schema", "$id": "https://github.com/Transparency-Information-Language/schema", "type": "object", "title": "Root schema of a Transparency Information Language", "description": "This schema defines the Transparency Information Language", "examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}], "properties": {"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}, "controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}, "dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}, "dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}, "thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}, "accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}, "sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}, "rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}, "rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}, "rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}, "rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}, "rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}, "automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}, "changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}}, "required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/Transparency-Information-Language/schema", + "type": "object", + "title": "Root schema of a Transparency Information Language", + "description": "This schema defines the Transparency Information Language", + "examples": [ + { + "meta": { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + }, + "controller": { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + }, + "dataProtectionOfficer": { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "dataDisclosed": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": [ + "E-mail address" + ], + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { + "category": "Responsible Statistical Institutes" + } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "thirdCountryTransfers": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "accessAndDataPortability": { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], + "administrativeFee": { + "amount": 0, + "currency": "EUR" + }, + "dataFormat": "json" + }, + "sources": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "rightToInformation": { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] + }, + "rightToRectificationOrDeletion": { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] + }, + "rightToDataPortability": { + "available": false, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy" + ] + }, + "rightToWithdrawConsent": { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "Email verification" + ] + }, + "rightToComplain": { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + }, + "automatedDecisionMaking": { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + }, + "changesOfPurpose": [ + { + "description": "Due to techncial requirements...", + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + } + ], + "properties": { + "meta": { + "$id": "#/properties/meta", + "type": "object", + "title": "Meta", + "description": "Meta information for the identification and verification of the document.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15:53:05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + } + ], + "required": [ + "_id", + "name", + "created", + "modified", + "version", + "language", + "status", + "url", + "_hash" + ], + "properties": { + "_id": { + "$id": "#/properties/meta/properties/_id", + "type": "string", + "title": "_id", + "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", + "examples": [ + "f1424f86-ca0f-4f0c-9438-43cc00509931" + ] + }, + "name": { + "$id": "#/properties/meta/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the data controller.", + "examples": [ + "Green Company" + ] + }, + "created": { + "$id": "#/properties/meta/properties/created", + "type": "string", + "title": "Created", + "description": "Creation date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": [ + "2020-04-03T15:53:05.929588" + ] + }, + "modified": { + "$id": "#/properties/meta/properties/modified", + "type": "string", + "title": "Modified", + "description": "Last modified date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": [ + "2020-04-03T15:53:05.929588" + ] + }, + "version": { + "$id": "#/properties/meta/properties/version", + "type": "integer", + "title": "Version", + "description": "This number serves to version documents of a controller.", + "default": 1, + "minimum": 1, + "examples": [ + 2 + ] + }, + "language": { + "$id": "#/properties/meta/properties/language", + "type": "string", + "title": "Language", + "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", + "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", + "default": "en", + "examples": [ + "de" + ] + }, + "status": { + "$id": "#/properties/meta/properties/status", + "type": "string", + "title": "Status", + "description": "The status of an instance can be active or inactive depending on the policy's legal force.", + "default": "active", + "pattern": "^(active|inactive)$", + "examples": [ + "active", + "inactive" + ] + }, + "url": { + "$id": "#/properties/meta/properties/url", + "type": "string", + "title": "Url", + "description": "URL to this schema.", + "format": "uri-reference", + "examples": [ + "https://green-bikes.de/privacy" + ] + }, + "_hash": { + "$id": "#/properties/meta/properties/_hash", + "type": "string", + "title": "_hash", + "description": "The hash is based on one SHA256 calculation of the document.", + "minLength": 64, + "maxLength": 64, + "examples": [ + "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + ] + } + } + }, + "controller": { + "$id": "#/properties/controller", + "type": "object", + "title": "Controller", + "description": "The responsible controller is defined in here.", + "examples": [ + { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "sector": "J" + } + ], + "required": [ + "name", + "address", + "country", + "representative" + ], + "properties": { + "name": { + "$id": "#/properties/controller/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller.", + "examples": [ + "Green Company AG" + ] + }, + "division": { + "$id": "#/properties/controller/properties/division", + "type": "string", + "title": "Division", + "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", + "examples": [ + "Product line e-mobility" + ] + }, + "address": { + "$id": "#/properties/controller/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the controller.", + "examples": [ + "Wolfsburger Ring 2, 38440 Berlin" + ] + }, + "country": { + "$id": "#/properties/controller/properties/country", + "type": "string", + "title": "Country", + "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", + "default": "DE", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": [ + "DE" + ] + }, + "representative": { + "$id": "#/properties/controller/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative is a responsible real person that represents the controller.", + "examples": [ + { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": [ + "name", + "email" + ], + "properties": { + "name": { + "$id": "#/properties/controller/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller's representative.", + "examples": [ + "Jane Super" + ] + }, + "email": { + "$id": "#/properties/controller/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "Email address of the controller's representative.", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "phone": { + "$id": "#/properties/controller/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the controller's representative.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": [ + "+49 151 1234 5678" + ] + } + } + }, + "sector": { + "$id": "#/properties/controller/properties/sector", + "type": "string", + "description": "The industry of the controller according to UN ISIC Rev. 4", + "example": "J", + "maxLength": 1, + "pattern": "[A-Z]" + } + } + }, + "dataProtectionOfficer": { + "$id": "#/properties/dataProtectionOfficer", + "type": "object", + "title": "DataProtectionOfficer", + "description": "The Data Protection Officer (DPO) of the controller.", + "examples": [ + { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": [ + "name", + "address", + "country", + "email" + ], + "properties": { + "name": { + "$id": "#/properties/dataProtectionOfficer/properties/name", + "type": "string", + "title": "Name", + "description": "The full name of the Data Protection Officer.", + "examples": [ + "Jane Super" + ] + }, + "address": { + "$id": "#/properties/dataProtectionOfficer/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the DPO.", + "examples": [ + "Wolfsburger Ring 2, 38440 Berlin" + ] + }, + "country": { + "$id": "#/properties/dataProtectionOfficer/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the Data Protection officer is located at.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": [ + "DE" + ] + }, + "email": { + "$id": "#/properties/dataProtectionOfficer/properties/email", + "type": "string", + "title": "Email", + "description": "The contact email address of the Data Protection Officer.", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "phone": { + "$id": "#/properties/dataProtectionOfficer/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the Data Protection Officer (may include country prefix).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": [ + "0049 151 1234 5678" + ] + } + } + }, + "dataDisclosed": { + "$id": "#/properties/dataDisclosed", + "type": "array", + "title": "DataDisclosed", + "description": "A detailed explanation about which data is disclosed in the processing tasks.", + "examples": [ + [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { + "category": "Responsible Statistical Institutes" + } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0", + "title": "AnyOf schema", + "description": "The description of data disclosed.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { + "category": "Responsible Statistical Institutes" + } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "properties": { + "_id": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", + "examples": [ + "f1424f86-ca0f-4f0c-9438-43cc00509931" + ] + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", + "type": "array", + "title": "Category", + "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", + "examples": [ + "E-mail address" + ], + "items": { + "type": "string" + } + }, + "purposes": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", + "type": "array", + "title": "Purposes", + "description": "The purpose for which a data item is processed for.", + "examples": [ + [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", + "title": "AnyOf schema for the purposes.", + "examples": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "properties": { + "purpose": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", + "type": "string", + "title": "Purpose", + "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", + "examples": [ + "Marketing" + ] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "This schema refers to an exact description of the purpose the data is processed for.", + "examples": [ + "Newsletter will be sent out once a month." + ] + } + }, + "required": [ + "purpose", + "description" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", + "type": "object" + } + }, + "legalBases": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", + "type": "array", + "title": "LegalBases", + "description": "An explanation about the legal bases for the processing of personal data disclosed.", + "examples": [ + [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", + "title": "AnyOf schema for the legal bases of the data disclosed.", + "examples": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + } + ], + "properties": { + "reference": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", + "type": "string", + "title": "Reference", + "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": [ + "GDPR-99-1-a" + ] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the legal basis used.", + "examples": [ + "The data are processed on the basis of Art. 99 GDPR which states..." + ] + } + }, + "required": [ + "reference" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", + "type": "object" + } + }, + "legitimateInterests": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", + "type": "array", + "title": "LegitimateInterests", + "description": "An explanation about the legitimate interests for the processing of data disclosed.", + "examples": [ + [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", + "title": "AnyOf schema for legitimate interests.", + "examples": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "if": { + "properties": { + "exists": { + "const": true + } + }, + "required": [ + "exists" + ] + }, + "then": { + "required": [ + "reasoning" + ] + }, + "properties": { + "exists": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", + "type": "boolean", + "title": "Exists", + "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", + "default": false, + "examples": [ + true, + false + ] + }, + "reasoning": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", + "type": "string", + "title": "Reasoning", + "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", + "examples": [ + "There is an legitimate interest based on ... and is not overwritten because ..." + ] + } + } + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", + "type": "object" + } + }, + "recipients": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", + "type": "array", + "title": "Recipients", + "description": "An explanation about the recipients of the data disclosed.", + "examples": [ + [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { + "category": "Responsible Statistical Institutes" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", + "title": "AnyOf schema if recipients", + "examples": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the third party (recipient).", + "examples": [ + "Yellow Company AG" + ] + }, + "division": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", + "type": "string", + "title": "Division", + "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", + "examples": [ + "Product line e-mobility" + ] + }, + "address": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", + "type": "string", + "title": "Address", + "description": "The address of the third party (recipient).", + "examples": [ + "Triana 123, 9999 Seville" + ] + }, + "country": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": [ + "ES" + ] + }, + "representative": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative of the third party (recipient).", + "examples": [ + { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the representative of the third party (recipient).", + "examples": [ + "Jane Super" + ] + }, + "email": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "The email address of the representative of the third party (recipient).", + "format": "email", + "examples": [ + "contact@yellowcompany.de" + ] + }, + "phone": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the representative of the third party (recipient).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": [ + "0049 151 1234 9876" + ] + } + } + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", + "type": "string", + "title": "Category", + "description": "The category of the the recipient.", + "examples": [ + "Marketing content provider" + ] + } + }, + "required": [ + "category" + ] + }, + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", + "title": "Second anyOf", + "examples": [ + { + "category": "Responsible Statistical Institutes" + } + ], + "properties": { + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", + "type": "string", + "title": "Category", + "description": "This category has to be given, even if the controller is not mentioned explicitly.", + "examples": [ + "Responsible Statistical Institutes" + ] + } + }, + "required": [ + "category" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", + "type": "object" + } + }, + "storage": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", + "type": "array", + "title": "Storage", + "description": "In this section, the duration of storage or storage criteria are given.", + "examples": [ + [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ], + "properties": { + "temporal": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", + "type": "array", + "title": "Temporal", + "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", + "examples": [ + [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "properties": { + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "The description why the data has to be stored..", + "examples": [ + "Creating backups." + ] + }, + "ttl": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", + "type": "string", + "title": "Ttl", + "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", + "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", + "examples": [ + "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + ] + } + }, + "required": [ + "description", + "ttl" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", + "type": "object" + } + }, + "purposeConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", + "type": "array", + "title": "PurposeConditional", + "description": "Specifies the purpose that requires data storage.", + "examples": [ + [ + "Data is stored until the end of the ordering process." + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + "Data is stored until the end of the ordering process." + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", + "type": "string" + } + }, + "legalBasisConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", + "type": "array", + "title": "LegalBasisConditional", + "description": "If the storage is required by law, the respective one has to specified in here.", + "examples": [ + [ + "SGB-100-42" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", + "title": "First anyOf", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": [ + "SGB-100-42" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", + "type": "string" + } + }, + "aggregationFunction": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", + "type": "string", + "title": "AggregationFunction", + "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", + "default": "max", + "enum": [ + "min", + "max", + "sum", + "avg" + ], + "examples": [ + "max" + ] + } + }, + "required": [ + "aggregationFunction" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", + "type": "object" + } + }, + "nonDisclosure": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", + "type": "object", + "title": "NonDisclosure", + "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", + "examples": [ + { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + ], + "required": [ + "legalRequirement", + "contractualRegulation", + "obligationToProvide", + "consequences" + ], + "properties": { + "legalRequirement": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", + "type": "boolean", + "title": "LegalRequirement", + "description": "Is there a legal requirement to collect these data?", + "default": false, + "examples": [ + false, + true + ] + }, + "contractualRegulation": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", + "type": "boolean", + "title": "ContractualRegulation", + "description": "Is there a contractual regulation to collect these data?", + "default": false, + "examples": [ + false, + true + ] + }, + "obligationToProvide": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", + "type": "boolean", + "title": "ObligationToProvide", + "description": "Is there an obligation for the data subject to provide these data?", + "default": false, + "examples": [ + false, + true + ] + }, + "consequences": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", + "type": "string", + "title": "Consequences", + "description": "Description of the consequences in the case of non-disclosure.", + "examples": [ + "If the data is not disclosed, the shipment cannot be delivered." + ] + } + } + } + }, + "required": [ + "_id", + "category", + "purposes", + "legalBases", + "legitimateInterests", + "recipients", + "storage", + "nonDisclosure" + ] + } + ], + "$id": "#/properties/dataDisclosed/items", + "type": "object" + } + }, + "thirdCountryTransfers": { + "$id": "#/properties/thirdCountryTransfers", + "type": "array", + "title": "ThirdCountryTransfers", + "description": "This schema refers to the adequacy decisions of any third country transfers.", + "examples": [ + [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "properties": { + "country": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country code of the third country.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": [ + "ES" + ] + }, + "adequacyDecision": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", + "type": "object", + "title": "AdequacyDecision", + "examples": [ + { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", + "type": "boolean", + "title": "Available", + "description": "Adequacy decision by the European commission exists?", + "default": false, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the adequacy decision by the European commission.", + "examples": [ + "An adequacy decision was made on the 23rd April 2020 by..." + ] + } + } + }, + "appropriateGuarantees": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", + "type": "object", + "title": "AppropriateGuarantees", + "description": "Suitable guarantees according to Art. 45", + "examples": [ + { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", + "type": "boolean", + "title": "Available", + "description": "Do suitable guarantees according to Art. 45 exist?", + "default": false, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", + "type": "string", + "title": "Description", + "description": "Description of suitable guarantees according to Art. 45", + "examples": [ + "Here the appropriate guarantee was formulated by..." + ] + } + } + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", + "type": "object", + "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", + "description": "Presence of enforceable rights and effective remedies", + "examples": [ + { + "available": true, + "description": "These rights are given because of..." + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", + "type": "boolean", + "title": "Available", + "description": "Presence of enforceable rights and effective remedies?", + "default": false, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", + "type": "string", + "title": "Description", + "description": "Description of enforceable rights and effective remedies.", + "examples": [ + "These rights are given because of..." + ] + } + } + }, + "standardDataProtectionClause": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", + "type": "object", + "title": "StandardDataProtectionClause", + "description": "Schema on Standard Data Protection clauses.", + "examples": [ + { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", + "type": "boolean", + "title": "Available", + "description": "Does a standard data protection clause exist?", + "default": false, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the standard data protection clause (may include link).", + "examples": [ + "The standard data protection clause which applies here can be found here: ..." + ] + } + } + } + } + } + ], + "$id": "#/properties/thirdCountryTransfers/items", + "type": "object" + } + }, + "accessAndDataPortability": { + "$id": "#/properties/accessAndDataPortability", + "type": "object", + "title": "AccessAndDataPortability", + "description": "Defining the right to access and data portability.", + "examples": [ + { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], + "administrativeFee": { + "amount": 0, + "currency": "EUR" + }, + "dataFormat": "json" + } + ], + "required": [ + "available" + ], + "properties": { + "available": { + "$id": "#/properties/accessAndDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", + "default": true, + "examples": [ + true + ] + }, + "description": { + "$id": "#/properties/accessAndDataPortability/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the requirements according to Art. 20 GDPR.", + "examples": [ + "Data access is possible through...", + "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." + ] + }, + "url": { + "$id": "#/properties/accessAndDataPortability/properties/url", + "type": "string", + "title": "Url", + "description": "URL to relevant resources such as access portals.", + "format": "uri-reference", + "examples": [ + "https://green-bikes.de/access" + ] + }, + "email": { + "$id": "#/properties/accessAndDataPortability/properties/email", + "type": "string", + "title": "Email", + "description": "Contact email address", + "format": "email", + "examples": [ + "access@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "description": "ID evidences", + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy", + "Email verification" + ] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", + "type": "string" + } + }, + "administrativeFee": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", + "type": "object", + "title": "AdministrativeFee", + "description": "The fee that refers to several copies.", + "examples": [ + { + "amount": 0, + "currency": "EUR" + } + ], + "properties": { + "amount": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", + "type": "number", + "title": "Amount", + "description": "The amount of money to be paid for a copy.", + "default": 0, + "examples": [ + 0 + ] + }, + "currency": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", + "type": "string", + "title": "Currency", + "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", + "default": "EUR", + "minLength": 3, + "maxLength": 3, + "examples": [ + "EUR" + ] + } + }, + "required": [ + "amount", + "currency" + ] + }, + "dataFormats": { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats", + "type": "array", + "title": "DataFormat", + "description": "An explanation about the data format(s) the data is provided in.", + "default": [ + "json" + ], + "examples": [ + "json", + "xml" + ], + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "json", + "xml" + ] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", + "type": "string" + } + } + } + }, + "sources": { + "$id": "#/properties/sources", + "type": "array", + "title": "Sources", + "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", + "examples": [ + [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "properties": { + "_id": { + "$id": "#/properties/sources/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", + "examples": [ + "f1423cc00509931" + ] + }, + "dataCategory": { + "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", + "type": "string", + "title": "DataCategory", + "description": "The category the data refer to.", + "examples": [ + "Creditworthiness" + ] + }, + "sources": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources", + "type": "array", + "title": "Sources", + "description": "Specify the source(s) where the data come from.", + "examples": [ + [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ], + "properties": { + "description": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the source the data is taken from.", + "examples": [ + "This information could be retrieved from..." + ] + }, + "url": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", + "type": "string", + "title": "Url", + "description": "URL (reference) where the data is taken from.", + "format": "uri-reference", + "examples": [ + "https://blueCompany.org" + ] + }, + "publiclyAvailable": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", + "type": "boolean", + "title": "PubliclyAvailable", + "description": "Are these data publicly available?", + "default": false, + "examples": [ + false, + true + ] + } + }, + "required": [ + "description", + "url", + "publiclyAvailable" + ] + } + ], + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", + "type": "object" + } + } + }, + "required": [ + "_id", + "dataCategory", + "sources" + ] + } + ], + "$id": "#/properties/sources/items", + "type": "object" + } + }, + "rightToInformation": { + "$id": "#/properties/rightToInformation", + "type": "object", + "title": "RightToInformation", + "description": "Refers to the right of information.", + "examples": [ + { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToInformation/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [ + true + ] + }, + "description": { + "$id": "#/properties/rightToInformation/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the right.", + "examples": [ + "For the right to information please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToInformation/properties/url", + "type": "string", + "title": "Url", + "description": "URL to an online portal.", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rightToInformation" + ] + }, + "email": { + "$id": "#/properties/rightToInformation/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToInformation/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy", + "Email verification" + ] + } + ], + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToRectificationOrDeletion": { + "$id": "#/properties/rightToRectificationOrDeletion", + "type": "object", + "title": "RightToRectificationOrDeletion", + "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", + "examples": [ + { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to rectification please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rights" + ] + }, + "email": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy", + "Email verification" + ] + } + ], + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToDataPortability": { + "$id": "#/properties/rightToDataPortability", + "type": "object", + "title": "RightToDataPortability", + "description": "The right to data portability as stated in Art. 20 GDPR.", + "examples": [ + { + "available": true, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy" + ] + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [ + false, + true + ] + }, + "description": { + "$id": "#/properties/rightToDataPortability/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "Data portability is only possible when..." + ] + }, + "url": { + "$id": "#/properties/rightToDataPortability/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rights" + ] + }, + "email": { + "$id": "#/properties/rightToDataPortability/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "ID card copy" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy" + ] + } + ], + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToWithdrawConsent": { + "$id": "#/properties/rightToWithdrawConsent", + "type": "object", + "title": "RightToWithdrawConsent", + "description": "This schema refers to the right to withdraw consent.", + "examples": [ + { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "Email verification" + ] + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToWithdrawConsent/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/rightToWithdrawConsent/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to withdraw consent please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToWithdrawConsent/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rights" + ] + }, + "email": { + "$id": "#/properties/rightToWithdrawConsent/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "Email verification" + ] + } + ], + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", + "type": "string" + } + } + } + }, + "rightToComplain": { + "$id": "#/properties/rightToComplain", + "type": "object", + "title": "RightToComplain", + "description": "This schema refers to the right to complain.", + "examples": [ + { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description", + "supervisoryAuthority" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToComplain/properties/available", + "type": "boolean", + "title": "Available", + "description": "Is this right available?", + "default": true, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/rightToComplain/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to complain please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToComplain/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rights" + ] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToComplain/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy", + "Email verification" + ] + } + ], + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", + "type": "string" + } + }, + "supervisoryAuthority": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", + "type": "object", + "title": "SupervisoryAuthority", + "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", + "examples": [ + { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + ], + "properties": { + "name": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the supervisory authority.", + "examples": [ + "Commissioner for Data Protection" + ] + }, + "address": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", + "type": "string", + "title": "Address", + "description": "Adress of the supervisory authority.", + "examples": [ + "Friedrichstrasse 219, 10969 Berlin" + ] + }, + "country": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", + "type": "string", + "title": "Country", + "description": "Country of the supervisory authority.", + "minLength": 2, + "maxLength": 2, + "examples": [ + "DE" + ] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", + "type": "string", + "title": "Email", + "description": "Email adress of the supervisory authority.", + "format": "email", + "examples": [ + "mailbox@privacy-berlin.de" + ] + }, + "phone": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the supervisory authority.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": [ + "0049 444 222 111" + ] + } + }, + "required": [ + "name" + ] + } + } + }, + "automatedDecisionMaking": { + "$id": "#/properties/automatedDecisionMaking", + "type": "object", + "title": "AutomatedDecisionMaking", + "description": "Automated decision making and potentially involved logic. Does include profiling.", + "examples": [ + { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + } + ], + "if": { + "properties": { + "inUse": { + "const": true + } + }, + "required": [ + "inUse" + ] + }, + "then": { + "required": [ + "logicInvolved", + "scopeAndIntendedEffects" + ] + }, + "properties": { + "inUse": { + "$id": "#/properties/automatedDecisionMaking/properties/inUse", + "type": "boolean", + "title": "InUse", + "description": "Is automated decision making in use?", + "default": true, + "examples": [ + true, + false + ] + }, + "logicInvolved": { + "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", + "type": "string", + "title": "LogicInvolved", + "description": "An explanation about the logic involved to automated decision making.", + "examples": [ + "The personal data are processed as follows..." + ] + }, + "scopeAndIntendedEffects": { + "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", + "type": "string", + "title": "ScopeAndIntendedEffects", + "description": "Scope and intended effects of such processing for the data subject.", + "examples": [ + "From processing follows..." + ] + } + } + }, + "changesOfPurpose": { + "$id": "#/properties/changesOfPurpose", + "type": "array", + "title": "ChangesOfPurpose", + "description": "Notification of change of purpose.", + "examples": [ + [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ], + "properties": { + "description": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the change of purpose.", + "examples": [ + "Due to technical requirements..." + ] + }, + "affectedDataCategories": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", + "type": "array", + "title": "AffectedDataCategories", + "description": "Data categories that are affected from the change of purpose.", + "examples": [ + [ + "Email adress", + "Credit score" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "Email adress", + "Credit score" + ] + } + ], + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", + "type": "string" + } + }, + "plannedDateOfChange": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", + "type": "string", + "title": "PlannedDateOfChange", + "description": "Specify the planned date to the changes as ISO 8601 string.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": [ + "2020-08-20" + ] + }, + "urlOfNewVersion": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", + "type": "string", + "title": "UrlOfNewVersion", + "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", + "examples": [ + "https://greencomp.de/tilt/2" + ] + } + } + } + ], + "$id": "#/properties/changesOfPurpose/items", + "type": "object" + } + } + }, + "required": [ + "meta", + "controller", + "dataProtectionOfficer", + "dataDisclosed", + "thirdCountryTransfers", + "accessAndDataPortability", + "sources", + "rightToInformation", + "rightToRectificationOrDeletion", + "rightToDataPortability", + "rightToWithdrawConsent", + "rightToComplain", + "automatedDecisionMaking", + "changesOfPurpose" + ] +} \ No newline at end of file diff --git a/tilt.json b/tilt.json index e6f7bc0..705e7f8 100644 --- a/tilt.json +++ b/tilt.json @@ -3,12 +3,12 @@ "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", - "_hash": "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + "_hash": "d732a793562a3e5dc57645a8" }, "controller": { "name": "Green Company AG", @@ -31,7 +31,9 @@ "dataDisclosed": [ { "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": "E-mail address", + "category": [ + "E-mail address" + ], "purposes": [ { "purpose": "Marketing", @@ -50,7 +52,7 @@ ], "legitimateInterests": [ { - "exists": false, + "exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." } ], @@ -76,7 +78,7 @@ "temporal": [ { "description": "Creating backups.", - "ttl": "P3Y6M4DT12H30M5S" + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" }, { "description": "Finishing ordering process.", @@ -134,10 +136,7 @@ "amount": 0, "currency": "EUR" }, - "dataFormats": [ - "json", - "xml" - ] + "dataFormat": "json" }, "sources": [ { @@ -214,7 +213,7 @@ }, "changesOfPurpose": [ { - "description": "Due to technical requirements...", + "description": "Due to techncial requirements...", "affectedDataCategories": [ "Email adress", "Credit score" diff --git a/tilt_schema/00_$schema.json b/tilt_schema/00_$schema.json deleted file mode 100644 index 63749aa..0000000 --- a/tilt_schema/00_$schema.json +++ /dev/null @@ -1 +0,0 @@ -{"$schema": "http://json-schema.org/draft-07/schema"} \ No newline at end of file diff --git a/tilt_schema/01_$id.json b/tilt_schema/01_$id.json deleted file mode 100644 index b3a1591..0000000 --- a/tilt_schema/01_$id.json +++ /dev/null @@ -1 +0,0 @@ -{"$id": "https://github.com/Transparency-Information-Language/schema"} \ No newline at end of file diff --git a/tilt_schema/02_type.json b/tilt_schema/02_type.json deleted file mode 100644 index 61ef6e4..0000000 --- a/tilt_schema/02_type.json +++ /dev/null @@ -1 +0,0 @@ -{"type": "object"} \ No newline at end of file diff --git a/tilt_schema/03_title.json b/tilt_schema/03_title.json deleted file mode 100644 index 27769bd..0000000 --- a/tilt_schema/03_title.json +++ /dev/null @@ -1 +0,0 @@ -{"title": "Root schema of a Transparency Information Language"} \ No newline at end of file diff --git a/tilt_schema/04_description.json b/tilt_schema/04_description.json deleted file mode 100644 index 2edede7..0000000 --- a/tilt_schema/04_description.json +++ /dev/null @@ -1 +0,0 @@ -{"description": "This schema defines the Transparency Information Language"} \ No newline at end of file diff --git a/tilt_schema/05_examples.json b/tilt_schema/05_examples.json deleted file mode 100644 index fe2bbbf..0000000 --- a/tilt_schema/05_examples.json +++ /dev/null @@ -1 +0,0 @@ -{"examples": [{"meta": {"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15: 53: 05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}, "controller": {"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}}, "dataProtectionOfficer": {"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "dataDisclosed": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": ["E-mail address"], "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "thirdCountryTransfers": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "accessAndDataPortability": {"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}, "sources": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "rightToInformation": {"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToRectificationOrDeletion": {"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}, "rightToDataPortability": {"available": false, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}, "rightToWithdrawConsent": {"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}, "rightToComplain": {"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}, "automatedDecisionMaking": {"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}, "changesOfPurpose": [{"description": "Due to techncial requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]}]} \ No newline at end of file diff --git a/tilt_schema/07_required.json b/tilt_schema/07_required.json deleted file mode 100644 index 0e6dc0f..0000000 --- a/tilt_schema/07_required.json +++ /dev/null @@ -1 +0,0 @@ -{"required": ["meta", "controller", "dataProtectionOfficer", "dataDisclosed", "thirdCountryTransfers", "accessAndDataPortability", "sources", "rightToInformation", "rightToRectificationOrDeletion", "rightToDataPortability", "rightToWithdrawConsent", "rightToComplain", "automatedDecisionMaking", "changesOfPurpose"]} \ No newline at end of file diff --git a/tilt_schema/properties/00_meta.json b/tilt_schema/properties/00_meta.json index 9dc4915..be980a7 100644 --- a/tilt_schema/properties/00_meta.json +++ b/tilt_schema/properties/00_meta.json @@ -1 +1,125 @@ -{"meta": {"$id": "#/properties/meta", "type": "object", "title": "Meta", "description": "Meta information for the identification and verification of the document.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", "url": "https://green-bikes.de/privacy", "_hash": "d732a793562a3e5dc57645a8"}], "required": ["_id", "name", "created", "modified", "version", "language", "status", "url", "_hash"], "properties": {"_id": {"$id": "#/properties/meta/properties/_id", "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "name": {"$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", "examples": ["Green Company"]}, "created": {"$id": "#/properties/meta/properties/created", "type": "string", "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "modified": {"$id": "#/properties/meta/properties/modified", "type": "string", "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-04-03T15:53:05.929588"]}, "version": {"$id": "#/properties/meta/properties/version", "type": "integer", "title": "Version", "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, "examples": [2]}, "language": {"$id": "#/properties/meta/properties/language", "type": "string", "title": "Language", "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", "examples": ["de"]}, "status": {"$id": "#/properties/meta/properties/status", "type": "string", "title": "Status", "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", "examples": ["active", "inactive"]}, "url": {"$id": "#/properties/meta/properties/url", "type": "string", "title": "Url", "description": "URL to this schema.", "format": "uri-reference", "examples": ["https://green-bikes.de/privacy"]}, "_hash": {"$id": "#/properties/meta/properties/_hash", "type": "string", "title": "_hash", "description": "The hash is based on one SHA256 calculation of the document.", "minLength": 64, "maxLength": 64, "examples": ["be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7"]}}}} \ No newline at end of file +{ + "$id": "#/properties/meta", + "type": "object", + "title": "Meta", + "description": "Meta information for the identification and verification of the document.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15:53:05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + } + ], + "required": [ + "_id", + "name", + "created", + "modified", + "version", + "language", + "status", + "url", + "_hash" + ], + "properties": { + "_id": { + "$id": "#/properties/meta/properties/_id", + "type": "string", + "title": "_id", + "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", + "examples": [ + "f1424f86-ca0f-4f0c-9438-43cc00509931" + ] + }, + "name": { + "$id": "#/properties/meta/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the data controller.", + "examples": [ + "Green Company" + ] + }, + "created": { + "$id": "#/properties/meta/properties/created", + "type": "string", + "title": "Created", + "description": "Creation date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": [ + "2020-04-03T15:53:05.929588" + ] + }, + "modified": { + "$id": "#/properties/meta/properties/modified", + "type": "string", + "title": "Modified", + "description": "Last modified date of the document as an ISO-8601 time code.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": [ + "2020-04-03T15:53:05.929588" + ] + }, + "version": { + "$id": "#/properties/meta/properties/version", + "type": "integer", + "title": "Version", + "description": "This number serves to version documents of a controller.", + "default": 1, + "minimum": 1, + "examples": [ + 2 + ] + }, + "language": { + "$id": "#/properties/meta/properties/language", + "type": "string", + "title": "Language", + "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", + "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", + "default": "en", + "examples": [ + "de" + ] + }, + "status": { + "$id": "#/properties/meta/properties/status", + "type": "string", + "title": "Status", + "description": "The status of an instance can be active or inactive depending on the policy's legal force.", + "default": "active", + "pattern": "^(active|inactive)$", + "examples": [ + "active", + "inactive" + ] + }, + "url": { + "$id": "#/properties/meta/properties/url", + "type": "string", + "title": "Url", + "description": "URL to this schema.", + "format": "uri-reference", + "examples": [ + "https://green-bikes.de/privacy" + ] + }, + "_hash": { + "$id": "#/properties/meta/properties/_hash", + "type": "string", + "title": "_hash", + "description": "The hash is based on one SHA256 calculation of the document.", + "minLength": 64, + "maxLength": 64, + "examples": [ + "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" + ] + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/01_controller.json b/tilt_schema/properties/01_controller.json index b41b99a..cd71b5f 100644 --- a/tilt_schema/properties/01_controller.json +++ b/tilt_schema/properties/01_controller.json @@ -1 +1,124 @@ -{"controller": {"$id": "#/properties/controller", "type": "object", "title": "Controller", "description": "The responsible controller is defined in here.", "examples": [{"name": "Green Company AG", "division": "Product line e-mobility", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "representative": {"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}, "sector": "J"}], "required": ["name", "address", "country", "representative"], "properties": {"name": {"$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", "examples": ["Green Company AG"]}, "division": {"$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/controller/properties/country", "type": "string", "title": "Country", "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", "default": "DE", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "representative": {"$id": "#/properties/controller/properties/representative", "type": "object", "title": "Representative", "description": "The representative is a responsible real person that represents the controller.", "examples": [{"name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "email"], "properties": {"name": {"$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/controller/properties/representative/properties/email", "type": "string", "title": "Email", "description": "Email address of the controller's representative.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/controller/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["+49 151 1234 5678"]}}}, "sector": {"$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", "example": "J", "maxLength": 1, "pattern": "[A-Z]"}}}} \ No newline at end of file +{ + "$id": "#/properties/controller", + "type": "object", + "title": "Controller", + "description": "The responsible controller is defined in here.", + "examples": [ + { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "sector": "J" + } + ], + "required": [ + "name", + "address", + "country", + "representative" + ], + "properties": { + "name": { + "$id": "#/properties/controller/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller.", + "examples": [ + "Green Company AG" + ] + }, + "division": { + "$id": "#/properties/controller/properties/division", + "type": "string", + "title": "Division", + "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", + "examples": [ + "Product line e-mobility" + ] + }, + "address": { + "$id": "#/properties/controller/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the controller.", + "examples": [ + "Wolfsburger Ring 2, 38440 Berlin" + ] + }, + "country": { + "$id": "#/properties/controller/properties/country", + "type": "string", + "title": "Country", + "description": "All country codes follow the established ones ISO 3166 country abbreviation standard.", + "default": "DE", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": [ + "DE" + ] + }, + "representative": { + "$id": "#/properties/controller/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative is a responsible real person that represents the controller.", + "examples": [ + { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": [ + "name", + "email" + ], + "properties": { + "name": { + "$id": "#/properties/controller/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the controller's representative.", + "examples": [ + "Jane Super" + ] + }, + "email": { + "$id": "#/properties/controller/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "Email address of the controller's representative.", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "phone": { + "$id": "#/properties/controller/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the controller's representative.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": [ + "+49 151 1234 5678" + ] + } + } + }, + "sector": { + "$id": "#/properties/controller/properties/sector", + "type": "string", + "description": "The industry of the controller according to UN ISIC Rev. 4", + "example": "J", + "maxLength": 1, + "pattern": "[A-Z]" + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/02_dataProtectionOfficer.json b/tilt_schema/properties/02_dataProtectionOfficer.json index 07a6642..173d55b 100644 --- a/tilt_schema/properties/02_dataProtectionOfficer.json +++ b/tilt_schema/properties/02_dataProtectionOfficer.json @@ -1 +1,73 @@ -{"dataProtectionOfficer": {"$id": "#/properties/dataProtectionOfficer", "type": "object", "title": "DataProtectionOfficer", "description": "The Data Protection Officer (DPO) of the controller.", "examples": [{"name": "Jane Super", "address": "Wolfsburger Ring 2, 38440 Berlin", "country": "DE", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678"}], "required": ["name", "address", "country", "email"], "properties": {"name": {"$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", "examples": ["Jane Super"]}, "address": {"$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", "examples": ["Wolfsburger Ring 2, 38440 Berlin"]}, "country": {"$id": "#/properties/dataProtectionOfficer/properties/country", "type": "string", "title": "Country", "description": "The country in which the Data Protection officer is located at.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["DE"]}, "email": {"$id": "#/properties/dataProtectionOfficer/properties/email", "type": "string", "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", "examples": ["contact@greencompany.de"]}, "phone": {"$id": "#/properties/dataProtectionOfficer/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 5678"]}}}} \ No newline at end of file +{ + "$id": "#/properties/dataProtectionOfficer", + "type": "object", + "title": "DataProtectionOfficer", + "description": "The Data Protection Officer (DPO) of the controller.", + "examples": [ + { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + ], + "required": [ + "name", + "address", + "country", + "email" + ], + "properties": { + "name": { + "$id": "#/properties/dataProtectionOfficer/properties/name", + "type": "string", + "title": "Name", + "description": "The full name of the Data Protection Officer.", + "examples": [ + "Jane Super" + ] + }, + "address": { + "$id": "#/properties/dataProtectionOfficer/properties/address", + "type": "string", + "title": "Address", + "description": "Address of the DPO.", + "examples": [ + "Wolfsburger Ring 2, 38440 Berlin" + ] + }, + "country": { + "$id": "#/properties/dataProtectionOfficer/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the Data Protection officer is located at.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": [ + "DE" + ] + }, + "email": { + "$id": "#/properties/dataProtectionOfficer/properties/email", + "type": "string", + "title": "Email", + "description": "The contact email address of the Data Protection Officer.", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "phone": { + "$id": "#/properties/dataProtectionOfficer/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the Data Protection Officer (may include country prefix).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": [ + "0049 151 1234 5678" + ] + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/03_dataDisclosed.json b/tilt_schema/properties/03_dataDisclosed.json index 3d8a34a..b9733ff 100644 --- a/tilt_schema/properties/03_dataDisclosed.json +++ b/tilt_schema/properties/03_dataDisclosed.json @@ -1 +1,806 @@ -{"dataDisclosed": {"$id": "#/properties/dataDisclosed", "type": "array", "title": "DataDisclosed", "description": "A detailed explanation about which data is disclosed in the processing tasks.", "examples": [[{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0", "title": "AnyOf schema", "description": "The description of data disclosed.", "examples": [{"_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "category": "E-mail address", "purposes": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "legalBases": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}], "legitimateInterests": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "recipients": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}], "storage": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "nonDisclosure": {"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}}], "properties": {"_id": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"]}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", "examples": ["E-mail address"], "items": {"type": "string"}}, "purposes": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", "type": "array", "title": "Purposes", "description": "The purpose for which a data item is processed for.", "examples": [[{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", "title": "AnyOf schema for the purposes.", "examples": [{"purpose": "Marketing", "description": "Newsletter will be sent out once a month."}], "properties": {"purpose": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", "examples": ["Marketing"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "This schema refers to an exact description of the purpose the data is processed for.", "examples": ["Newsletter will be sent out once a month."]}}, "required": ["purpose", "description"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", "type": "object"}}, "legalBases": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", "type": "array", "title": "LegalBases", "description": "An explanation about the legal bases for the processing of personal data disclosed.", "examples": [[{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}, {"reference": "BDSG-42-5", "description": "BDSG-42-5 refers to the processing of personal data within..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", "title": "AnyOf schema for the legal bases of the data disclosed.", "examples": [{"reference": "GDPR-99-1-a", "description": "The data are processed on the basis of Art. 99 GDPR which states..."}], "properties": {"reference": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", "type": "string", "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["GDPR-99-1-a"]}, "description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "An explanation about the legal basis used.", "examples": ["The data are processed on the basis of Art. 99 GDPR which states..."]}}, "required": ["reference"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", "type": "object"}}, "legitimateInterests": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", "type": "array", "title": "LegitimateInterests", "description": "An explanation about the legitimate interests for the processing of data disclosed.", "examples": [[{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", "title": "AnyOf schema for legitimate interests.", "examples": [{"exists": true, "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."}], "if": {"properties": {"exists": {"const": true}}, "required": ["exists"]}, "then": {"required": ["reasoning"]}, "properties": {"exists": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", "type": "boolean", "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, "examples": [true, false]}, "reasoning": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", "type": "string", "title": "Reasoning", "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", "examples": ["There is an legitimate interest based on ... and is not overwritten because ..."]}}}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", "type": "object"}}, "recipients": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", "type": "array", "title": "Recipients", "description": "An explanation about the recipients of the data disclosed.", "examples": [[{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}, {"category": "Responsible Statistical Institutes"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", "title": "AnyOf schema if recipients", "examples": [{"name": "Yellow Company AG", "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", "representative": {"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}, "category": "Marketing content provider"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", "type": "string", "title": "Name", "description": "The name of the third party (recipient).", "examples": ["Yellow Company AG"]}, "division": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", "examples": ["Product line e-mobility"]}, "address": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", "examples": ["Triana 123, 9999 Seville"]}, "country": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "representative": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", "type": "object", "title": "Representative", "description": "The representative of the third party (recipient).", "examples": [{"name": "Jane Super", "email": "contact@yellowcompany.de", "phone": "0049 151 1234 9876"}], "properties": {"name": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", "examples": ["Jane Super"]}, "email": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", "type": "string", "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", "examples": ["contact@yellowcompany.de"]}, "phone": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", "type": "string", "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 151 1234 9876"]}}}, "category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", "type": "string", "title": "Category", "description": "The category of the the recipient.", "examples": ["Marketing content provider"]}}, "required": ["category"]}, {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", "title": "Second anyOf", "examples": [{"category": "Responsible Statistical Institutes"}], "properties": {"category": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", "examples": ["Responsible Statistical Institutes"]}}, "required": ["category"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", "type": "object"}}, "storage": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", "type": "array", "title": "Storage", "description": "In this section, the duration of storage or storage criteria are given.", "examples": [[{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", "title": "First anyOf", "examples": [{"temporal": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}], "purposeConditional": ["Data is stored until the end of the ordering process."], "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max"}], "properties": {"temporal": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", "type": "array", "title": "Temporal", "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", "examples": [[{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}, {"description": "Finishing ordering process.", "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Creating backups.", "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"}], "properties": {"description": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "The description why the data has to be stored..", "examples": ["Creating backups."]}, "ttl": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", "type": "string", "title": "Ttl", "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", "examples": ["2005-08-09T18:31:42P3Y6M4DT12H30M17S"]}}, "required": ["description", "ttl"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", "type": "object"}}, "purposeConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", "type": "array", "title": "PurposeConditional", "description": "Specifies the purpose that requires data storage.", "examples": [["Data is stored until the end of the ordering process."]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", "title": "AnyOf schema", "examples": ["Data is stored until the end of the ordering process."]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", "type": "string"}}, "legalBasisConditional": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", "examples": [["SGB-100-42"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", "examples": ["SGB-100-42"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", "type": "string"}}, "aggregationFunction": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", "type": "string", "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", "enum": ["min", "max", "sum", "avg"], "examples": ["max"]}}, "required": ["aggregationFunction"]}], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", "type": "object"}}, "nonDisclosure": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", "type": "object", "title": "NonDisclosure", "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", "examples": [{"legalRequirement": false, "contractualRegulation": false, "obligationToProvide": false, "consequences": "If the data is not disclosed, the shipment cannot be delivered."}], "required": ["legalRequirement", "contractualRegulation", "obligationToProvide", "consequences"], "properties": {"legalRequirement": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", "type": "boolean", "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, "examples": [false, true]}, "contractualRegulation": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", "type": "boolean", "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, "examples": [false, true]}, "obligationToProvide": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", "type": "boolean", "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, "examples": [false, true]}, "consequences": {"$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", "type": "string", "title": "Consequences", "description": "Description of the consequences in the case of non-disclosure.", "examples": ["If the data is not disclosed, the shipment cannot be delivered."]}}}}, "required": ["_id", "category", "purposes", "legalBases", "legitimateInterests", "recipients", "storage", "nonDisclosure"]}], "$id": "#/properties/dataDisclosed/items", "type": "object"}}} \ No newline at end of file +{ + "$id": "#/properties/dataDisclosed", + "type": "array", + "title": "DataDisclosed", + "description": "A detailed explanation about which data is disclosed in the processing tasks.", + "examples": [ + [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { + "category": "Responsible Statistical Institutes" + } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0", + "title": "AnyOf schema", + "description": "The description of data disclosed.", + "examples": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": "E-mail address", + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { + "category": "Responsible Statistical Institutes" + } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "properties": { + "_id": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", + "examples": [ + "f1424f86-ca0f-4f0c-9438-43cc00509931" + ] + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", + "type": "array", + "title": "Category", + "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", + "examples": [ + "E-mail address" + ], + "items": { + "type": "string" + } + }, + "purposes": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes", + "type": "array", + "title": "Purposes", + "description": "The purpose for which a data item is processed for.", + "examples": [ + [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0", + "title": "AnyOf schema for the purposes.", + "examples": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "properties": { + "purpose": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/purpose", + "type": "string", + "title": "Purpose", + "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", + "examples": [ + "Marketing" + ] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "This schema refers to an exact description of the purpose the data is processed for.", + "examples": [ + "Newsletter will be sent out once a month." + ] + } + }, + "required": [ + "purpose", + "description" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", + "type": "object" + } + }, + "legalBases": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases", + "type": "array", + "title": "LegalBases", + "description": "An explanation about the legal bases for the processing of personal data disclosed.", + "examples": [ + [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0", + "title": "AnyOf schema for the legal bases of the data disclosed.", + "examples": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + } + ], + "properties": { + "reference": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/reference", + "type": "string", + "title": "Reference", + "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": [ + "GDPR-99-1-a" + ] + }, + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the legal basis used.", + "examples": [ + "The data are processed on the basis of Art. 99 GDPR which states..." + ] + } + }, + "required": [ + "reference" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", + "type": "object" + } + }, + "legitimateInterests": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests", + "type": "array", + "title": "LegitimateInterests", + "description": "An explanation about the legitimate interests for the processing of data disclosed.", + "examples": [ + [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0", + "title": "AnyOf schema for legitimate interests.", + "examples": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "if": { + "properties": { + "exists": { + "const": true + } + }, + "required": [ + "exists" + ] + }, + "then": { + "required": [ + "reasoning" + ] + }, + "properties": { + "exists": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/exists", + "type": "boolean", + "title": "Exists", + "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", + "default": false, + "examples": [ + true, + false + ] + }, + "reasoning": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", + "type": "string", + "title": "Reasoning", + "description": "If the legitimate interest has to be stated because the processing is carried out in accordance with Art. 13 (1d), it is described in here.", + "examples": [ + "There is an legitimate interest based on ... and is not overwritten because ..." + ] + } + } + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items", + "type": "object" + } + }, + "recipients": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients", + "type": "array", + "title": "Recipients", + "description": "An explanation about the recipients of the data disclosed.", + "examples": [ + [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { + "category": "Responsible Statistical Institutes" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0", + "title": "AnyOf schema if recipients", + "examples": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the third party (recipient).", + "examples": [ + "Yellow Company AG" + ] + }, + "division": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", + "type": "string", + "title": "Division", + "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", + "examples": [ + "Product line e-mobility" + ] + }, + "address": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", + "type": "string", + "title": "Address", + "description": "The address of the third party (recipient).", + "examples": [ + "Triana 123, 9999 Seville" + ] + }, + "country": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country in which the recipient is located at. Attention: This explictly specifies third country transfers!", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": [ + "ES" + ] + }, + "representative": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", + "type": "object", + "title": "Representative", + "description": "The representative of the third party (recipient).", + "examples": [ + { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + } + ], + "properties": { + "name": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/name", + "type": "string", + "title": "Name", + "description": "The name of the representative of the third party (recipient).", + "examples": [ + "Jane Super" + ] + }, + "email": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", + "type": "string", + "title": "Email", + "description": "The email address of the representative of the third party (recipient).", + "format": "email", + "examples": [ + "contact@yellowcompany.de" + ] + }, + "phone": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", + "type": "string", + "title": "Phone", + "description": "The phone number of the representative of the third party (recipient).", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": [ + "0049 151 1234 9876" + ] + } + } + }, + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/category", + "type": "string", + "title": "Category", + "description": "The category of the the recipient.", + "examples": [ + "Marketing content provider" + ] + } + }, + "required": [ + "category" + ] + }, + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", + "title": "Second anyOf", + "examples": [ + { + "category": "Responsible Statistical Institutes" + } + ], + "properties": { + "category": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1/properties/category", + "type": "string", + "title": "Category", + "description": "This category has to be given, even if the controller is not mentioned explicitly.", + "examples": [ + "Responsible Statistical Institutes" + ] + } + }, + "required": [ + "category" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", + "type": "object" + } + }, + "storage": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage", + "type": "array", + "title": "Storage", + "description": "In this section, the duration of storage or storage criteria are given.", + "examples": [ + [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ], + "properties": { + "temporal": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal", + "type": "array", + "title": "Temporal", + "description": "This schema serves to specify a temporal description of how long the data is stored and for what exactly.", + "examples": [ + [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "properties": { + "description": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "The description why the data has to be stored..", + "examples": [ + "Creating backups." + ] + }, + "ttl": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", + "type": "string", + "title": "Ttl", + "description": "The TTL (Time-to-Live) specifies the lifetime of this data (category). It follows the ISO 8601 for time spans.", + "pattern": "^(\\d{4}(-\\d{2}(-\\d{2})?(?!:))?(T\\d{2}(:\\d{2}(:\\d{2})?(\\.\\d+)?)?)?(Z|([+,-]\\d{2}(:\\d{2})?))?)?P(([0-9]+([.,][0-9]*)?Y)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?D)?T?([0-9]+([.,][0-9]*)?H)?([0-9]+([.,][0-9]*)?M)?([0-9]+([.,][0-9]*)?S)?)|\\d{4}-?(0[1-9]|11|12)-?(?:[0-2]\\d|30|31)T((?:[0-1][0-9]|[2][0-3]):?(?:[0-5][0-9]):?(?:[0-5][0-9]|60)|2400|24:00)$", + "examples": [ + "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + ] + } + }, + "required": [ + "description", + "ttl" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", + "type": "object" + } + }, + "purposeConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional", + "type": "array", + "title": "PurposeConditional", + "description": "Specifies the purpose that requires data storage.", + "examples": [ + [ + "Data is stored until the end of the ordering process." + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + "Data is stored until the end of the ordering process." + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/purposeConditional/items", + "type": "string" + } + }, + "legalBasisConditional": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional", + "type": "array", + "title": "LegalBasisConditional", + "description": "If the storage is required by law, the respective one has to specified in here.", + "examples": [ + [ + "SGB-100-42" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", + "title": "First anyOf", + "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", + "examples": [ + "SGB-100-42" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", + "type": "string" + } + }, + "aggregationFunction": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/aggregationFunction", + "type": "string", + "title": "AggregationFunction", + "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", + "default": "max", + "enum": [ + "min", + "max", + "sum", + "avg" + ], + "examples": [ + "max" + ] + } + }, + "required": [ + "aggregationFunction" + ] + } + ], + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", + "type": "object" + } + }, + "nonDisclosure": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure", + "type": "object", + "title": "NonDisclosure", + "description": "This schema refers to the necessity and consequences of non-disclosure of personal data. According to Art. 13 (2e), this refers to the information whether the provision of the personal data is required by law or contract or is required for the conclusion of a contract, whether the data subject is obliged to provide the personal data and the possible consequences of not providing it.", + "examples": [ + { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + ], + "required": [ + "legalRequirement", + "contractualRegulation", + "obligationToProvide", + "consequences" + ], + "properties": { + "legalRequirement": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/legalRequirement", + "type": "boolean", + "title": "LegalRequirement", + "description": "Is there a legal requirement to collect these data?", + "default": false, + "examples": [ + false, + true + ] + }, + "contractualRegulation": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", + "type": "boolean", + "title": "ContractualRegulation", + "description": "Is there a contractual regulation to collect these data?", + "default": false, + "examples": [ + false, + true + ] + }, + "obligationToProvide": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", + "type": "boolean", + "title": "ObligationToProvide", + "description": "Is there an obligation for the data subject to provide these data?", + "default": false, + "examples": [ + false, + true + ] + }, + "consequences": { + "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", + "type": "string", + "title": "Consequences", + "description": "Description of the consequences in the case of non-disclosure.", + "examples": [ + "If the data is not disclosed, the shipment cannot be delivered." + ] + } + } + } + }, + "required": [ + "_id", + "category", + "purposes", + "legalBases", + "legitimateInterests", + "recipients", + "storage", + "nonDisclosure" + ] + } + ], + "$id": "#/properties/dataDisclosed/items", + "type": "object" + } +} \ No newline at end of file diff --git a/tilt_schema/properties/04_thirdCountryTransfers.json b/tilt_schema/properties/04_thirdCountryTransfers.json index bf13519..c6f93f0 100644 --- a/tilt_schema/properties/04_thirdCountryTransfers.json +++ b/tilt_schema/properties/04_thirdCountryTransfers.json @@ -1 +1,270 @@ -{"thirdCountryTransfers": {"$id": "#/properties/thirdCountryTransfers", "type": "array", "title": "ThirdCountryTransfers", "description": "This schema refers to the adequacy decisions of any third country transfers.", "examples": [[{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/thirdCountryTransfers/items/anyOf/0", "title": "AnyOf schema", "examples": [{"country": "ES", "adequacyDecision": {"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}, "appropriateGuarantees": {"available": true, "description": "Here the appropriate guarantee was formulated by..."}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"available": true, "description": "These rights are given because of..."}, "standardDataProtectionClause": {"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}}], "properties": {"country": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", "type": "string", "title": "Country", "description": "The country code of the third country.", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", "examples": ["ES"]}, "adequacyDecision": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", "type": "object", "title": "AdequacyDecision", "examples": [{"available": true, "description": "An adequacy decision was made on the 23rd April 2020 by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", "type": "boolean", "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", "type": "string", "title": "Description", "description": "Description of the adequacy decision by the European commission.", "examples": ["An adequacy decision was made on the 23rd April 2020 by..."]}}}, "appropriateGuarantees": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", "type": "object", "title": "AppropriateGuarantees", "description": "Suitable guarantees according to Art. 45", "examples": [{"available": true, "description": "Here the appropriate guarantee was formulated by..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", "type": "boolean", "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", "type": "string", "title": "Description", "description": "Description of suitable guarantees according to Art. 45", "examples": ["Here the appropriate guarantee was formulated by..."]}}}, "presenceOfEnforceableRightsAndEffectiveRemedies": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", "type": "object", "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", "description": "Presence of enforceable rights and effective remedies", "examples": [{"available": true, "description": "These rights are given because of..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", "type": "boolean", "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", "examples": ["These rights are given because of..."]}}}, "standardDataProtectionClause": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", "type": "object", "title": "StandardDataProtectionClause", "description": "Schema on Standard Data Protection clauses.", "examples": [{"available": true, "description": "The standard data protection clause which applies here can be found here: ..."}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", "type": "boolean", "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, "examples": [true, false]}, "description": {"$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", "type": "string", "title": "Description", "description": "An explanation about the standard data protection clause (may include link).", "examples": ["The standard data protection clause which applies here can be found here: ..."]}}}}}], "$id": "#/properties/thirdCountryTransfers/items", "type": "object"}}} \ No newline at end of file +{ + "$id": "#/properties/thirdCountryTransfers", + "type": "array", + "title": "ThirdCountryTransfers", + "description": "This schema refers to the adequacy decisions of any third country transfers.", + "examples": [ + [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0", + "title": "AnyOf schema", + "examples": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "properties": { + "country": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/country", + "type": "string", + "title": "Country", + "description": "The country code of the third country.", + "minLength": 2, + "maxLength": 2, + "pattern": "^[A-Z][A-Z]$", + "examples": [ + "ES" + ] + }, + "adequacyDecision": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", + "type": "object", + "title": "AdequacyDecision", + "examples": [ + { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/available", + "type": "boolean", + "title": "Available", + "description": "Adequacy decision by the European commission exists?", + "default": false, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the adequacy decision by the European commission.", + "examples": [ + "An adequacy decision was made on the 23rd April 2020 by..." + ] + } + } + }, + "appropriateGuarantees": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees", + "type": "object", + "title": "AppropriateGuarantees", + "description": "Suitable guarantees according to Art. 45", + "examples": [ + { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/available", + "type": "boolean", + "title": "Available", + "description": "Do suitable guarantees according to Art. 45 exist?", + "default": false, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", + "type": "string", + "title": "Description", + "description": "Description of suitable guarantees according to Art. 45", + "examples": [ + "Here the appropriate guarantee was formulated by..." + ] + } + } + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies", + "type": "object", + "title": "PresenceOfEnforceableRightsAndEffectiveRemedies", + "description": "Presence of enforceable rights and effective remedies", + "examples": [ + { + "available": true, + "description": "These rights are given because of..." + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/available", + "type": "boolean", + "title": "Available", + "description": "Presence of enforceable rights and effective remedies?", + "default": false, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", + "type": "string", + "title": "Description", + "description": "Description of enforceable rights and effective remedies.", + "examples": [ + "These rights are given because of..." + ] + } + } + }, + "standardDataProtectionClause": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause", + "type": "object", + "title": "StandardDataProtectionClause", + "description": "Schema on Standard Data Protection clauses.", + "examples": [ + { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/available", + "type": "boolean", + "title": "Available", + "description": "Does a standard data protection clause exist?", + "default": false, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", + "type": "string", + "title": "Description", + "description": "An explanation about the standard data protection clause (may include link).", + "examples": [ + "The standard data protection clause which applies here can be found here: ..." + ] + } + } + } + } + } + ], + "$id": "#/properties/thirdCountryTransfers/items", + "type": "object" + } +} \ No newline at end of file diff --git a/tilt_schema/properties/05_accessAndDataPortability.json b/tilt_schema/properties/05_accessAndDataPortability.json index 98be952..37ee80c 100644 --- a/tilt_schema/properties/05_accessAndDataPortability.json +++ b/tilt_schema/properties/05_accessAndDataPortability.json @@ -1 +1,162 @@ -{"accessAndDataPortability": {"$id": "#/properties/accessAndDataPortability", "type": "object", "title": "AccessAndDataPortability", "description": "Defining the right to access and data portability.", "examples": [{"available": true, "description": "Data access is possible through...", "url": "https://green-bikes.de/access", "email": "access@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": {"amount": 0, "currency": "EUR"}, "dataFormat": "json"}], "required": ["available"], "properties": {"available": {"$id": "#/properties/accessAndDataPortability/properties/available", "type": "boolean", "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, "examples": [true]}, "description": {"$id": "#/properties/accessAndDataPortability/properties/description", "type": "string", "title": "Description", "description": "Description of the requirements according to Art. 20 GDPR.", "examples": ["Data access is possible through...", "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .."]}, "url": {"$id": "#/properties/accessAndDataPortability/properties/url", "type": "string", "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", "examples": ["https://green-bikes.de/access"]}, "email": {"$id": "#/properties/accessAndDataPortability/properties/email", "type": "string", "title": "Email", "description": "Contact email address", "format": "email", "examples": ["access@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", "type": "string"}}, "administrativeFee": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee", "type": "object", "title": "AdministrativeFee", "description": "The fee that refers to several copies.", "examples": [{"amount": 0, "currency": "EUR"}], "properties": {"amount": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", "type": "number", "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, "examples": [0]}, "currency": {"$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", "type": "string", "title": "Currency", "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", "default": "EUR", "minLength": 3, "maxLength": 3, "examples": ["EUR"]}}, "required": ["amount", "currency"]}, "dataFormats": {"$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", "default": ["json"], "examples": ["json", "xml"], "items": {"anyOf": [{"$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", "examples": ["json", "xml"]}], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", "type": "string"}}}}} \ No newline at end of file +{ + "$id": "#/properties/accessAndDataPortability", + "type": "object", + "title": "AccessAndDataPortability", + "description": "Defining the right to access and data portability.", + "examples": [ + { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], + "administrativeFee": { + "amount": 0, + "currency": "EUR" + }, + "dataFormat": "json" + } + ], + "required": [ + "available" + ], + "properties": { + "available": { + "$id": "#/properties/accessAndDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", + "default": true, + "examples": [ + true + ] + }, + "description": { + "$id": "#/properties/accessAndDataPortability/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the requirements according to Art. 20 GDPR.", + "examples": [ + "Data access is possible through...", + "In the event that the requirements of Art. 20 Para. 1 GDPR are met, you have the right to store your data in a structured, common .." + ] + }, + "url": { + "$id": "#/properties/accessAndDataPortability/properties/url", + "type": "string", + "title": "Url", + "description": "URL to relevant resources such as access portals.", + "format": "uri-reference", + "examples": [ + "https://green-bikes.de/access" + ] + }, + "email": { + "$id": "#/properties/accessAndDataPortability/properties/email", + "type": "string", + "title": "Email", + "description": "Contact email address", + "format": "email", + "examples": [ + "access@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "description": "ID evidences", + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy", + "Email verification" + ] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", + "type": "string" + } + }, + "administrativeFee": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee", + "type": "object", + "title": "AdministrativeFee", + "description": "The fee that refers to several copies.", + "examples": [ + { + "amount": 0, + "currency": "EUR" + } + ], + "properties": { + "amount": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/amount", + "type": "number", + "title": "Amount", + "description": "The amount of money to be paid for a copy.", + "default": 0, + "examples": [ + 0 + ] + }, + "currency": { + "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", + "type": "string", + "title": "Currency", + "description": "The currency in which the amount of money for one copy has to be provided acc. to ISO 4217.", + "default": "EUR", + "minLength": 3, + "maxLength": 3, + "examples": [ + "EUR" + ] + } + }, + "required": [ + "amount", + "currency" + ] + }, + "dataFormats": { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats", + "type": "array", + "title": "DataFormat", + "description": "An explanation about the data format(s) the data is provided in.", + "default": [ + "json" + ], + "examples": [ + "json", + "xml" + ], + "items": { + "anyOf": [ + { + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "json", + "xml" + ] + } + ], + "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/06_sources.json b/tilt_schema/properties/06_sources.json index 875c4bf..c67aa69 100644 --- a/tilt_schema/properties/06_sources.json +++ b/tilt_schema/properties/06_sources.json @@ -1 +1,140 @@ -{"sources": {"$id": "#/properties/sources", "type": "array", "title": "Sources", "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", "examples": [[{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"_id": "f1423cc00509931", "dataCategory": "Creditworthiness", "sources": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]}], "properties": {"_id": {"$id": "#/properties/sources/items/anyOf/0/properties/_id", "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", "examples": ["f1423cc00509931"]}, "dataCategory": {"$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", "examples": ["Creditworthiness"]}, "sources": {"$id": "#/properties/sources/items/anyOf/0/properties/sources", "type": "array", "title": "Sources", "description": "Specify the source(s) where the data come from.", "examples": [[{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "This information could be retrieved from...", "url": "https://blueCompany.org", "publiclyAvailable": false}], "properties": {"description": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the source the data is taken from.", "examples": ["This information could be retrieved from..."]}, "url": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", "type": "string", "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", "examples": ["https://blueCompany.org"]}, "publiclyAvailable": {"$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", "type": "boolean", "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, "examples": [false, true]}}, "required": ["description", "url", "publiclyAvailable"]}], "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", "type": "object"}}}, "required": ["_id", "dataCategory", "sources"]}], "$id": "#/properties/sources/items", "type": "object"}}} \ No newline at end of file +{ + "$id": "#/properties/sources", + "type": "array", + "title": "Sources", + "description": "This duty to provide information is limited to the collection of personal data that does not take place from the data subject (Art. 14).", + "examples": [ + [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "properties": { + "_id": { + "$id": "#/properties/sources/items/anyOf/0/properties/_id", + "type": "string", + "title": "_id", + "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", + "examples": [ + "f1423cc00509931" + ] + }, + "dataCategory": { + "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", + "type": "string", + "title": "DataCategory", + "description": "The category the data refer to.", + "examples": [ + "Creditworthiness" + ] + }, + "sources": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources", + "type": "array", + "title": "Sources", + "description": "Specify the source(s) where the data come from.", + "examples": [ + [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ], + "properties": { + "description": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the source the data is taken from.", + "examples": [ + "This information could be retrieved from..." + ] + }, + "url": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/url", + "type": "string", + "title": "Url", + "description": "URL (reference) where the data is taken from.", + "format": "uri-reference", + "examples": [ + "https://blueCompany.org" + ] + }, + "publiclyAvailable": { + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/publiclyAvailable", + "type": "boolean", + "title": "PubliclyAvailable", + "description": "Are these data publicly available?", + "default": false, + "examples": [ + false, + true + ] + } + }, + "required": [ + "description", + "url", + "publiclyAvailable" + ] + } + ], + "$id": "#/properties/sources/items/anyOf/0/properties/sources/items", + "type": "object" + } + } + }, + "required": [ + "_id", + "dataCategory", + "sources" + ] + } + ], + "$id": "#/properties/sources/items", + "type": "object" + } +} \ No newline at end of file diff --git a/tilt_schema/properties/07_rightToInformation.json b/tilt_schema/properties/07_rightToInformation.json index d52a016..976d16c 100644 --- a/tilt_schema/properties/07_rightToInformation.json +++ b/tilt_schema/properties/07_rightToInformation.json @@ -1 +1,99 @@ -{"rightToInformation": {"$id": "#/properties/rightToInformation", "type": "object", "title": "RightToInformation", "description": "Refers to the right of information.", "examples": [{"available": true, "description": "For the right to information please use this contact form and...", "url": "https://greencompany.org/rightToInformation", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToInformation/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true]}, "description": {"$id": "#/properties/rightToInformation/properties/description", "type": "string", "title": "Description", "description": "Description of the right.", "examples": ["For the right to information please use this contact form and..."]}, "url": {"$id": "#/properties/rightToInformation/properties/url", "type": "string", "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", "examples": ["https://greencompany.org/rightToInformation"]}, "email": {"$id": "#/properties/rightToInformation/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file +{ + "$id": "#/properties/rightToInformation", + "type": "object", + "title": "RightToInformation", + "description": "Refers to the right of information.", + "examples": [ + { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToInformation/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [ + true + ] + }, + "description": { + "$id": "#/properties/rightToInformation/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the right.", + "examples": [ + "For the right to information please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToInformation/properties/url", + "type": "string", + "title": "Url", + "description": "URL to an online portal.", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rightToInformation" + ] + }, + "email": { + "$id": "#/properties/rightToInformation/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToInformation/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy", + "Email verification" + ] + } + ], + "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/08_rightToRectificationOrDeletion.json b/tilt_schema/properties/08_rightToRectificationOrDeletion.json index f3673a4..9bb32f7 100644 --- a/tilt_schema/properties/08_rightToRectificationOrDeletion.json +++ b/tilt_schema/properties/08_rightToRectificationOrDeletion.json @@ -1 +1,98 @@ -{"rightToRectificationOrDeletion": {"$id": "#/properties/rightToRectificationOrDeletion", "type": "object", "title": "RightToRectificationOrDeletion", "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", "examples": [{"available": true, "description": "For the right to rectification please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToRectificationOrDeletion/properties/available", "type": "boolean", "title": "Available", "description": "Possibility available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToRectificationOrDeletion/properties/description", "type": "string", "title": "Description", "examples": ["For the right to rectification please use this contact form and..."]}, "url": {"$id": "#/properties/rightToRectificationOrDeletion/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToRectificationOrDeletion/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file +{ + "$id": "#/properties/rightToRectificationOrDeletion", + "type": "object", + "title": "RightToRectificationOrDeletion", + "description": "This schema refers to the right to rectification or deletion (Art. 16 GDPR).", + "examples": [ + { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/available", + "type": "boolean", + "title": "Available", + "description": "Possibility available?", + "default": true, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to rectification please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rights" + ] + }, + "email": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy", + "Email verification" + ] + } + ], + "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/09_rightToDataPortability.json b/tilt_schema/properties/09_rightToDataPortability.json index a3f58ae..7ebe49b 100644 --- a/tilt_schema/properties/09_rightToDataPortability.json +++ b/tilt_schema/properties/09_rightToDataPortability.json @@ -1 +1,94 @@ -{"rightToDataPortability": {"$id": "#/properties/rightToDataPortability", "type": "object", "title": "RightToDataPortability", "description": "The right to data portability as stated in Art. 20 GDPR.", "examples": [{"available": true, "description": "Data portability is only possible when...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToDataPortability/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [false, true]}, "description": {"$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", "examples": ["Data portability is only possible when..."]}, "url": {"$id": "#/properties/rightToDataPortability/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToDataPortability/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy"]}], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file +{ + "$id": "#/properties/rightToDataPortability", + "type": "object", + "title": "RightToDataPortability", + "description": "The right to data portability as stated in Art. 20 GDPR.", + "examples": [ + { + "available": true, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy" + ] + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToDataPortability/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [ + false, + true + ] + }, + "description": { + "$id": "#/properties/rightToDataPortability/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "Data portability is only possible when..." + ] + }, + "url": { + "$id": "#/properties/rightToDataPortability/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rights" + ] + }, + "email": { + "$id": "#/properties/rightToDataPortability/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "ID card copy" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy" + ] + } + ], + "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/10_rightToWithdrawConsent.json b/tilt_schema/properties/10_rightToWithdrawConsent.json index 04bd579..19e83aa 100644 --- a/tilt_schema/properties/10_rightToWithdrawConsent.json +++ b/tilt_schema/properties/10_rightToWithdrawConsent.json @@ -1 +1,94 @@ -{"rightToWithdrawConsent": {"$id": "#/properties/rightToWithdrawConsent", "type": "object", "title": "RightToWithdrawConsent", "description": "This schema refers to the right to withdraw consent.", "examples": [{"available": true, "description": "For the right to withdraw consent please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["Email verification"]}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description"]}, "properties": {"available": {"$id": "#/properties/rightToWithdrawConsent/properties/available", "type": "boolean", "title": "Available", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToWithdrawConsent/properties/description", "type": "string", "title": "Description", "examples": ["For the right to withdraw consent please use this contact form and..."]}, "url": {"$id": "#/properties/rightToWithdrawConsent/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToWithdrawConsent/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["Email verification"]}], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", "type": "string"}}}}} \ No newline at end of file +{ + "$id": "#/properties/rightToWithdrawConsent", + "type": "object", + "title": "RightToWithdrawConsent", + "description": "This schema refers to the right to withdraw consent.", + "examples": [ + { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "Email verification" + ] + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToWithdrawConsent/properties/available", + "type": "boolean", + "title": "Available", + "default": true, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/rightToWithdrawConsent/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to withdraw consent please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToWithdrawConsent/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rights" + ] + }, + "email": { + "$id": "#/properties/rightToWithdrawConsent/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "Email verification" + ] + } + ], + "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/11_rightToComplain.json b/tilt_schema/properties/11_rightToComplain.json index c19ccbd..bf00864 100644 --- a/tilt_schema/properties/11_rightToComplain.json +++ b/tilt_schema/properties/11_rightToComplain.json @@ -1 +1,175 @@ -{"rightToComplain": {"$id": "#/properties/rightToComplain", "type": "object", "title": "RightToComplain", "description": "This schema refers to the right to complain.", "examples": [{"available": true, "description": "For the right to complain please use this contact form and...", "url": "https://greencompany.org/rights", "email": "contact@greencompany.de", "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": {"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}}], "if": {"properties": {"available": {"const": true}}, "required": ["available"]}, "then": {"required": ["description", "supervisoryAuthority"]}, "properties": {"available": {"$id": "#/properties/rightToComplain/properties/available", "type": "boolean", "title": "Available", "description": "Is this right available?", "default": true, "examples": [true, false]}, "description": {"$id": "#/properties/rightToComplain/properties/description", "type": "string", "title": "Description", "examples": ["For the right to complain please use this contact form and..."]}, "url": {"$id": "#/properties/rightToComplain/properties/url", "type": "string", "title": "Url", "format": "uri-reference", "examples": ["https://greencompany.org/rights"]}, "email": {"$id": "#/properties/rightToComplain/properties/email", "type": "string", "title": "Email", "format": "email", "examples": ["contact@greencompany.de"]}, "identificationEvidences": {"$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", "examples": ["ID card copy", "Email verification"]}], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", "type": "string"}}, "supervisoryAuthority": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority", "type": "object", "title": "SupervisoryAuthority", "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", "examples": [{"name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", "country": "DE", "email": "mailbox@privacy-berlin.de", "phone": "0049 444 222 111"}], "properties": {"name": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", "type": "string", "title": "Name", "description": "Name of the supervisory authority.", "examples": ["Commissioner for Data Protection"]}, "address": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", "examples": ["Friedrichstrasse 219, 10969 Berlin"]}, "country": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", "type": "string", "title": "Country", "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, "examples": ["DE"]}, "email": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", "type": "string", "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", "examples": ["mailbox@privacy-berlin.de"]}, "phone": {"$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", "type": "string", "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", "examples": ["0049 444 222 111"]}}, "required": ["name"]}}}} \ No newline at end of file +{ + "$id": "#/properties/rightToComplain", + "type": "object", + "title": "RightToComplain", + "description": "This schema refers to the right to complain.", + "examples": [ + { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + } + ], + "if": { + "properties": { + "available": { + "const": true + } + }, + "required": [ + "available" + ] + }, + "then": { + "required": [ + "description", + "supervisoryAuthority" + ] + }, + "properties": { + "available": { + "$id": "#/properties/rightToComplain/properties/available", + "type": "boolean", + "title": "Available", + "description": "Is this right available?", + "default": true, + "examples": [ + true, + false + ] + }, + "description": { + "$id": "#/properties/rightToComplain/properties/description", + "type": "string", + "title": "Description", + "examples": [ + "For the right to complain please use this contact form and..." + ] + }, + "url": { + "$id": "#/properties/rightToComplain/properties/url", + "type": "string", + "title": "Url", + "format": "uri-reference", + "examples": [ + "https://greencompany.org/rights" + ] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/email", + "type": "string", + "title": "Email", + "format": "email", + "examples": [ + "contact@greencompany.de" + ] + }, + "identificationEvidences": { + "$id": "#/properties/rightToComplain/properties/identificationEvidences", + "type": "array", + "title": "IdentificationEvidences", + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "ID card copy", + "Email verification" + ] + } + ], + "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", + "type": "string" + } + }, + "supervisoryAuthority": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority", + "type": "object", + "title": "SupervisoryAuthority", + "description": "Defines the supervisory authority that has to be contacted in order to complain about the data controller's practices.", + "examples": [ + { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + ], + "properties": { + "name": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the supervisory authority.", + "examples": [ + "Commissioner for Data Protection" + ] + }, + "address": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", + "type": "string", + "title": "Address", + "description": "Adress of the supervisory authority.", + "examples": [ + "Friedrichstrasse 219, 10969 Berlin" + ] + }, + "country": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", + "type": "string", + "title": "Country", + "description": "Country of the supervisory authority.", + "minLength": 2, + "maxLength": 2, + "examples": [ + "DE" + ] + }, + "email": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", + "type": "string", + "title": "Email", + "description": "Email adress of the supervisory authority.", + "format": "email", + "examples": [ + "mailbox@privacy-berlin.de" + ] + }, + "phone": { + "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", + "type": "string", + "title": "Phone", + "description": "Phone number of the supervisory authority.", + "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", + "examples": [ + "0049 444 222 111" + ] + } + }, + "required": [ + "name" + ] + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/12_automatedDecisionMaking.json b/tilt_schema/properties/12_automatedDecisionMaking.json index 83a318c..d05b9dd 100644 --- a/tilt_schema/properties/12_automatedDecisionMaking.json +++ b/tilt_schema/properties/12_automatedDecisionMaking.json @@ -1 +1,60 @@ -{"automatedDecisionMaking": {"$id": "#/properties/automatedDecisionMaking", "type": "object", "title": "AutomatedDecisionMaking", "description": "Automated decision making and potentially involved logic. Does include profiling.", "examples": [{"inUse": true, "logicInvolved": "The personal data are processed as follows...", "scopeAndIntendedEffects": "From processing follows..."}], "if": {"properties": {"inUse": {"const": true}}, "required": ["inUse"]}, "then": {"required": ["logicInvolved", "scopeAndIntendedEffects"]}, "properties": {"inUse": {"$id": "#/properties/automatedDecisionMaking/properties/inUse", "type": "boolean", "title": "InUse", "description": "Is automated decision making in use?", "default": true, "examples": [true, false]}, "logicInvolved": {"$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", "examples": ["The personal data are processed as follows..."]}, "scopeAndIntendedEffects": {"$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", "examples": ["From processing follows..."]}}}} \ No newline at end of file +{ + "$id": "#/properties/automatedDecisionMaking", + "type": "object", + "title": "AutomatedDecisionMaking", + "description": "Automated decision making and potentially involved logic. Does include profiling.", + "examples": [ + { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + } + ], + "if": { + "properties": { + "inUse": { + "const": true + } + }, + "required": [ + "inUse" + ] + }, + "then": { + "required": [ + "logicInvolved", + "scopeAndIntendedEffects" + ] + }, + "properties": { + "inUse": { + "$id": "#/properties/automatedDecisionMaking/properties/inUse", + "type": "boolean", + "title": "InUse", + "description": "Is automated decision making in use?", + "default": true, + "examples": [ + true, + false + ] + }, + "logicInvolved": { + "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", + "type": "string", + "title": "LogicInvolved", + "description": "An explanation about the logic involved to automated decision making.", + "examples": [ + "The personal data are processed as follows..." + ] + }, + "scopeAndIntendedEffects": { + "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", + "type": "string", + "title": "ScopeAndIntendedEffects", + "description": "Scope and intended effects of such processing for the data subject.", + "examples": [ + "From processing follows..." + ] + } + } +} \ No newline at end of file diff --git a/tilt_schema/properties/13_changesOfPurpose.json b/tilt_schema/properties/13_changesOfPurpose.json index 3f79067..5b37424 100644 --- a/tilt_schema/properties/13_changesOfPurpose.json +++ b/tilt_schema/properties/13_changesOfPurpose.json @@ -1 +1,98 @@ -{"changesOfPurpose": {"$id": "#/properties/changesOfPurpose", "type": "array", "title": "ChangesOfPurpose", "description": "Notification of change of purpose.", "examples": [[{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0", "title": "First anyOf", "examples": [{"description": "Due to technical requirements...", "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2"}], "properties": {"description": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", "type": "string", "title": "Description", "description": "Description of the change of purpose.", "examples": ["Due to technical requirements..."]}, "affectedDataCategories": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": {"anyOf": [{"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", "examples": ["Email adress", "Credit score"]}], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", "type": "string"}}, "plannedDateOfChange": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", "type": "string", "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", "examples": ["2020-08-20"]}, "urlOfNewVersion": {"$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", "examples": ["https://greencomp.de/tilt/2"]}}}], "$id": "#/properties/changesOfPurpose/items", "type": "object"}}} \ No newline at end of file +{ + "$id": "#/properties/changesOfPurpose", + "type": "array", + "title": "ChangesOfPurpose", + "description": "Notification of change of purpose.", + "examples": [ + [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0", + "title": "First anyOf", + "examples": [ + { + "description": "Due to technical requirements...", + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ], + "properties": { + "description": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/description", + "type": "string", + "title": "Description", + "description": "Description of the change of purpose.", + "examples": [ + "Due to technical requirements..." + ] + }, + "affectedDataCategories": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", + "type": "array", + "title": "AffectedDataCategories", + "description": "Data categories that are affected from the change of purpose.", + "examples": [ + [ + "Email adress", + "Credit score" + ] + ], + "additionalItems": true, + "items": { + "anyOf": [ + { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", + "title": "First anyOf", + "examples": [ + "Email adress", + "Credit score" + ] + } + ], + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", + "type": "string" + } + }, + "plannedDateOfChange": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/plannedDateOfChange", + "type": "string", + "title": "PlannedDateOfChange", + "description": "Specify the planned date to the changes as ISO 8601 string.", + "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", + "examples": [ + "2020-08-20" + ] + }, + "urlOfNewVersion": { + "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", + "type": "string", + "title": "UrlOfNewVersion", + "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", + "examples": [ + "https://greencomp.de/tilt/2" + ] + } + } + } + ], + "$id": "#/properties/changesOfPurpose/items", + "type": "object" + } +} \ No newline at end of file diff --git a/tilt_schema/recompile.py b/tilt_schema/recompile.py deleted file mode 100644 index 04ff03f..0000000 --- a/tilt_schema/recompile.py +++ /dev/null @@ -1,71 +0,0 @@ -def reconstruct(): - import os - import json - import glob - - """ - func: Constructs the tilt-schema out of a number of constituent parts. - - requires: A directory called tilt_schema with files that combined make up the entire tile - Files are at best named in a way that preserves the order of a tilt document. - There also needs to be a subdirectory called properties that includes the substantial parts of the tilt document. - There is no single json file called properties as it is deleted whenever the subfolder is established. - All changes to the tilt should be made in the lowest-level of the directory possible. - returns: A fully constructed tilt-schema document. - """ - - #print(os.getcwd()) - - os.chdir('tilt_schema/') - - properties_sections = sorted(glob.glob('properties/*.json')) - - print(os.getcwd()) - - print(properties_sections) - - # Update the properties file with the underlying values - # Note: presupposes that all changes to the properties have been made in the properties-folder - data_props = [] - for subfile in properties_sections: - - with open(subfile, 'r') as sf: - data_props.append(json.load(sf)) - - combo_props = {} - for item in data_props: - combo_props.update(item) - - # Write the combined data to the properties file - with open('06_properties.json', 'w') as f: - json.dump({'properties':combo_props}, f) - - meta_sections = sorted(glob.glob("*.json")) - print(meta_sections) - - - # Create an empty list to hold the data from each file - data = [] - - # Iterate over each JSON file and load its contents into the data list - for file in meta_sections: - with open(file, 'r') as f: - data.append(json.load(f)) - - # Combine all the data into a single dictionary - combined_data = {} - for item in data: - combined_data.update(item) - - - # Write the combined data to a new JSON file - with open('../tilt-schema.json', 'w') as f: - json.dump(combined_data, f) - print('successfully created new json: ../tilt-schema.json') - - os.remove("06_properties.json") - - return - -if __name__== "__main__": - reconstruct() \ No newline at end of file diff --git a/tilt_schema/root_schema.json b/tilt_schema/root_schema.json new file mode 100644 index 0000000..543d749 --- /dev/null +++ b/tilt_schema/root_schema.json @@ -0,0 +1,251 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/Transparency-Information-Language/schema", + "type": "object", + "title": "Root schema of a Transparency Information Language", + "description": "This schema defines the Transparency Information Language", + "examples": [ + { + "meta": { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "name": "Green Company", + "created": "2020-04-03T15:53:05.929588", + "modified": "2020-04-03T15: 53: 05.929588", + "version": 2, + "language": "de", + "status": "active", + "url": "https://green-bikes.de/privacy", + "_hash": "d732a793562a3e5dc57645a8" + }, + "controller": { + "name": "Green Company AG", + "division": "Product line e-mobility", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "representative": { + "name": "Jane Super", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + } + }, + "dataProtectionOfficer": { + "name": "Jane Super", + "address": "Wolfsburger Ring 2, 38440 Berlin", + "country": "DE", + "email": "contact@greencompany.de", + "phone": "0049 151 1234 5678" + }, + "dataDisclosed": [ + { + "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", + "category": [ + "E-mail address" + ], + "purposes": [ + { + "purpose": "Marketing", + "description": "Newsletter will be sent out once a month." + } + ], + "legalBases": [ + { + "reference": "GDPR-99-1-a", + "description": "The data are processed on the basis of Art. 99 GDPR which states..." + }, + { + "reference": "BDSG-42-5", + "description": "BDSG-42-5 refers to the processing of personal data within..." + } + ], + "legitimateInterests": [ + { + "exists": true, + "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..." + } + ], + "recipients": [ + { + "name": "Yellow Company AG", + "division": "Product line e-mobility", + "address": "Triana 123, 9999 Seville", + "country": "ES", + "representative": { + "name": "Jane Super", + "email": "contact@yellowcompany.de", + "phone": "0049 151 1234 9876" + }, + "category": "Marketing content provider" + }, + { + "category": "Responsible Statistical Institutes" + } + ], + "storage": [ + { + "temporal": [ + { + "description": "Creating backups.", + "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S" + }, + { + "description": "Finishing ordering process.", + "ttl": "2020-08-09T18:31:42P3Y6M4DT12H30M17S" + } + ], + "purposeConditional": [ + "Data is stored until the end of the ordering process." + ], + "legalBasisConditional": [ + "SGB-100-42" + ], + "aggregationFunction": "max" + } + ], + "nonDisclosure": { + "legalRequirement": false, + "contractualRegulation": false, + "obligationToProvide": false, + "consequences": "If the data is not disclosed, the shipment cannot be delivered." + } + } + ], + "thirdCountryTransfers": [ + { + "country": "ES", + "adequacyDecision": { + "available": true, + "description": "An adequacy decision was made on the 23rd April 2020 by..." + }, + "appropriateGuarantees": { + "available": true, + "description": "Here the appropriate guarantee was formulated by..." + }, + "presenceOfEnforceableRightsAndEffectiveRemedies": { + "available": true, + "description": "These rights are given because of..." + }, + "standardDataProtectionClause": { + "available": true, + "description": "The standard data protection clause which applies here can be found here: ..." + } + } + ], + "accessAndDataPortability": { + "available": true, + "description": "Data access is possible through...", + "url": "https://green-bikes.de/access", + "email": "access@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], + "administrativeFee": { + "amount": 0, + "currency": "EUR" + }, + "dataFormat": "json" + }, + "sources": [ + { + "_id": "f1423cc00509931", + "dataCategory": "Creditworthiness", + "sources": [ + { + "description": "This information could be retrieved from...", + "url": "https://blueCompany.org", + "publiclyAvailable": false + } + ] + } + ], + "rightToInformation": { + "available": true, + "description": "For the right to information please use this contact form and...", + "url": "https://greencompany.org/rightToInformation", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] + }, + "rightToRectificationOrDeletion": { + "available": true, + "description": "For the right to rectification please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] + }, + "rightToDataPortability": { + "available": false, + "description": "Data portability is only possible when...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy" + ] + }, + "rightToWithdrawConsent": { + "available": true, + "description": "For the right to withdraw consent please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "Email verification" + ] + }, + "rightToComplain": { + "available": true, + "description": "For the right to complain please use this contact form and...", + "url": "https://greencompany.org/rights", + "email": "contact@greencompany.de", + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], + "supervisoryAuthority": { + "name": "Commissioner for Data Protection", + "address": "Friedrichstrasse 219, 10969 Berlin", + "country": "DE", + "email": "mailbox@privacy-berlin.de", + "phone": "0049 444 222 111" + } + }, + "automatedDecisionMaking": { + "inUse": true, + "logicInvolved": "The personal data are processed as follows...", + "scopeAndIntendedEffects": "From processing follows..." + }, + "changesOfPurpose": [ + { + "description": "Due to techncial requirements...", + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], + "plannedDateOfChange": "2020-08-20", + "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" + } + ] + } + ], + "properties": {}, + "required": [ + "meta", + "controller", + "dataProtectionOfficer", + "dataDisclosed", + "thirdCountryTransfers", + "accessAndDataPortability", + "sources", + "rightToInformation", + "rightToRectificationOrDeletion", + "rightToDataPortability", + "rightToWithdrawConsent", + "rightToComplain", + "automatedDecisionMaking", + "changesOfPurpose" + ] +} \ No newline at end of file diff --git a/tilt_schema/split.ipynb b/tilt_schema/split.ipynb deleted file mode 100644 index 2c64ce6..0000000 --- a/tilt_schema/split.ipynb +++ /dev/null @@ -1,235 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Split.ipynb\n", - "\n", - "Splits up the tilt-schema json into its constituent parts. \n", - "It further moves the properties section of the tilt into another subdirectory and splits it again. \n", - "\n", - "You should only execute the cells in this notebook if you want to definitely overwrite the files that are in the tilt_schema directory. \n", - "\n", - "These files are used by the GitHub action in main.yaml to reconstruct the tilt. \n", - "\n", - "This decomposition was made for easier readability and tractability of the tilt-schema" - ] - }, - { - "cell_type": "code", - "execution_count": 184, - "metadata": {}, - "outputs": [], - "source": [ - "import json\n", - "import os\n", - "import glob\n", - "import time\n", - "\n", - "# adopted from chatGPT\n", - "\n", - "def split_json(filepath_og):\n", - " # Open the original JSON file\n", - " with open(filepath_og, 'r') as f:\n", - " data = json.load(f)\n", - "\n", - " # Iterate over the top-level keys in the JSON object\n", - " for i, key in enumerate(data.keys()):\n", - " # Create a new dictionary containing only the data for this key\n", - " section = { key: data[key] }\n", - "\n", - " # Write the section to a new JSON file\n", - " with open(f'{i:02d}_{key}.json', 'w') as f:\n", - " json.dump(section, f)\n", - "\n", - " return data.keys()\n", - "\n", - "split_json('../tilt-schema.json')\n", - "\n", - "\n", - "# Open the original JSON file\n", - "with open('06_properties.json', 'r') as f:\n", - " data = json.load(f)\n", - "\n", - "# Iterate over the top-level keys in the JSON object\n", - "for i, key in enumerate(data['properties'].keys()):\n", - " # Create a new dictionary containing only the data for this key\n", - " section = { key: data['properties'][key] }\n", - "\n", - " # Write the section to a new JSON file\n", - " os.makedirs(os.path.dirname(f'properties/{i:02d}_{key}.json'), exist_ok=True)\n", - " with open(f'properties/{i:02d}_{key}.json', 'w') as f:\n", - " json.dump(section, f)\n", - "\n", - "os.remove(\"06_properties.json\")" - ] - }, - { - "cell_type": "code", - "execution_count": 185, - "metadata": {}, - "outputs": [], - "source": [ - "def reconstruct():\n", - "\n", - " \"\"\"\n", - " func: Constructs the tilt-schema out of a number of constituent parts.\n", - "\n", - "\n", - " \"\"\"\n", - "\n", - " \n", - " properties_sections = sorted(glob.glob('properties/*.json'))\n", - "\n", - " \n", - " print(properties_sections)\n", - " \n", - " # Update the properties file with the underlying values \n", - " # Note: presupposes that all changes to the properties have been made in the properties-folder\n", - " data_props = []\n", - " for subfile in properties_sections:\n", - "\n", - " with open(subfile, 'r') as sf:\n", - " data_props.append(json.load(sf))\n", - " \n", - " combo_props = {}\n", - " for item in data_props:\n", - " combo_props.update(item)\n", - " \n", - " # Write the combined data to a the properties file\n", - " with open('06_properties.json', 'w') as f:\n", - " json.dump({'properties':combo_props}, f)\n", - " \n", - " meta_sections = sorted(glob.glob(\"*.json\"))\n", - " print(meta_sections)\n", - "\n", - "\n", - " # Create an empty list to hold the data from each file\n", - " data = []\n", - "\n", - " # Iterate over each JSON file and load its contents into the data list\n", - " for file in meta_sections:\n", - " with open(file, 'r') as f:\n", - " data.append(json.load(f))\n", - "\n", - " # Combine all the data into a single dictionary\n", - " combined_data = {}\n", - " for item in data:\n", - " combined_data.update(item)\n", - "\n", - " \n", - " # Write the combined data to a new JSON file\n", - " with open('../combined.json', 'w') as f:\n", - " json.dump(combined_data, f)\n", - " print('successfully created new json')\n", - "\n", - " os.remove(\"06_properties.json\")\n", - "\n", - " return" - ] - }, - { - "cell_type": "code", - "execution_count": 186, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['properties/00_meta.json', 'properties/01_controller.json', 'properties/02_dataProtectionOfficer.json', 'properties/03_dataDisclosed.json', 'properties/04_thirdCountryTransfers.json', 'properties/05_accessAndDataPortability.json', 'properties/06_sources.json', 'properties/07_rightToInformation.json', 'properties/08_rightToRectificationOrDeletion.json', 'properties/09_rightToDataPortability.json', 'properties/10_rightToWithdrawConsent.json', 'properties/11_rightToComplain.json', 'properties/12_automatedDecisionMaking.json', 'properties/13_changesOfPurpose.json']\n", - "['00_$schema.json', '01_$id.json', '02_type.json', '03_title.json', '04_description.json', '05_examples.json', '06_properties.json', '07_required.json']\n", - "successfully created new json\n" - ] - } - ], - "source": [ - "reconstruct()" - ] - }, - { - "cell_type": "code", - "execution_count": 187, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No differences found between the two files.\n" - ] - } - ], - "source": [ - "# Load the data from the first file\n", - "with open('../tilt-schema.json', 'r') as f:\n", - " data1 = json.load(f)\n", - "\n", - "# Load the data from the second file\n", - "with open('../combined.json', 'r') as f:\n", - " data2 = json.load(f)\n", - "\n", - "# Compare the two data sets and print out any differences\n", - "if data1 != data2:\n", - " print(\"Differences found between the two files:\")\n", - " for key in set(data1.keys()).union(set(data2.keys())):\n", - " if data1.get(key) != data2.get(key):\n", - " print(f\"Key '{key}' differs between the files:\")\n", - " print(f\"File 1: {data1.get(key)}\")\n", - " print(f\"File 2: {data2.get(key)}\")\n", - "else:\n", - " print(\"No differences found between the two files.\")" - ] - }, - { - "cell_type": "code", - "execution_count": 188, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "63466\n", - "63466\n" - ] - } - ], - "source": [ - "print(len(str(data1)))\n", - "print(len(str(data2)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.12" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} From e58c28ea4607d7af75586225722390f2a5c239b1 Mon Sep 17 00:00:00 2001 From: Thomas Janke Date: Thu, 11 May 2023 17:20:13 +0200 Subject: [PATCH 72/80] Fix typo --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index a3ba584..e5151b6 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -30,7 +30,7 @@ jobs: - name: Run Python script run: | python scripts/recompile.py - python scripts/extract_example.py + python scripts/extract-example.py git config user.name github-actions git config user.email github-actions@github.com git pull From b68b824eb5fab5e37c0ce633342ef82358a6afd7 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 11 May 2023 15:20:30 +0000 Subject: [PATCH 73/80] combined the file --- tilt.json | 47 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/tilt.json b/tilt.json index 705e7f8..98b44fc 100644 --- a/tilt.json +++ b/tilt.json @@ -3,12 +3,14 @@ "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", "name": "Green Company", "created": "2020-04-03T15:53:05.929588", - "modified": "2020-04-03T15: 53: 05.929588", + "modified": "2020-04-03T15:53:05.929588", "version": 2, "language": "de", "status": "active", - "url": "https://green-bikes.de/privacy", - "_hash": "d732a793562a3e5dc57645a8" + "url": [ + "https://green-bikes.de/privacy" + ], + "_hash": "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" }, "controller": { "name": "Green Company AG", @@ -19,7 +21,12 @@ "name": "Jane Super", "email": "contact@greencompany.de", "phone": "0049 151 1234 5678" - } + }, + "url": [ + "https://green-bikes.de", + "https://bikes-that-are-green.de" + ], + "sector": "J" }, "dataProtectionOfficer": { "name": "Jane Super", @@ -62,6 +69,7 @@ "division": "Product line e-mobility", "address": "Triana 123, 9999 Seville", "country": "ES", + "domain": "https://yellowcompany.es", "representative": { "name": "Jane Super", "email": "contact@yellowcompany.de", @@ -126,7 +134,9 @@ "accessAndDataPortability": { "available": true, "description": "Data access is possible through...", - "url": "https://green-bikes.de/access", + "url": [ + "https://green-bikes.de/access" + ], "email": "access@greencompany.de", "identificationEvidences": [ "ID card copy", @@ -145,8 +155,11 @@ "sources": [ { "description": "This information could be retrieved from...", - "url": "https://blueCompany.org", - "publiclyAvailable": false + "url": [ + "https://blueCompany.org" + ], + "publiclyAvailable": false, + "origin": "received" } ] } @@ -154,7 +167,9 @@ "rightToInformation": { "available": true, "description": "For the right to information please use this contact form and...", - "url": "https://greencompany.org/rightToInformation", + "url": [ + "https://greencompany.org/rightToInformation" + ], "email": "contact@greencompany.de", "identificationEvidences": [ "ID card copy", @@ -164,7 +179,9 @@ "rightToRectificationOrDeletion": { "available": true, "description": "For the right to rectification please use this contact form and...", - "url": "https://greencompany.org/rights", + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", "identificationEvidences": [ "ID card copy", @@ -174,7 +191,9 @@ "rightToDataPortability": { "available": false, "description": "Data portability is only possible when...", - "url": "https://greencompany.org/rights", + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", "identificationEvidences": [ "ID card copy" @@ -183,7 +202,9 @@ "rightToWithdrawConsent": { "available": true, "description": "For the right to withdraw consent please use this contact form and...", - "url": "https://greencompany.org/rights", + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", "identificationEvidences": [ "Email verification" @@ -192,7 +213,9 @@ "rightToComplain": { "available": true, "description": "For the right to complain please use this contact form and...", - "url": "https://greencompany.org/rights", + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", "identificationEvidences": [ "ID card copy", From 33b7835bad96f5543fa1ff2a113923b03696dc39 Mon Sep 17 00:00:00 2001 From: Thomas Janke Date: Thu, 11 May 2023 17:23:10 +0200 Subject: [PATCH 74/80] remove example-generator --- example-generator.ipynb | 172 ---------------------------------------- 1 file changed, 172 deletions(-) delete mode 100644 example-generator.ipynb diff --git a/example-generator.ipynb b/example-generator.ipynb deleted file mode 100644 index e309ade..0000000 --- a/example-generator.ipynb +++ /dev/null @@ -1,172 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Example-generator.ipynb\n", - "\n", - "Test area to construct and example tilt out of the tilt-schema.\n", - "\n", - "Will be turned into .py file that can be executed as a GitHub action. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os \n", - "import json\n", - "import glob\n", - "import jsonschema\n", - "from jsonschema import Draft7Validator" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Validation failed with 2 error(s):\n", - "Error 1:\n", - " Message: {} is not valid under any of the given schemas\n", - " Path: dataDisclosed.0\n", - " Schema path: properties/dataDisclosed/items/anyOf\n", - "Error 2:\n", - " Message: {} is not valid under any of the given schemas\n", - " Path: sources.0\n", - " Schema path: properties/sources/items/anyOf\n" - ] - } - ], - "source": [ - "import json\n", - "import jsonschema\n", - "\n", - "# Load JSON schema\n", - "with open('combined.json', 'r') as schema_file:\n", - " schema_data = json.load(schema_file)\n", - "\n", - "# Build empty JSON based on schema\n", - "empty_json = {}\n", - "for key, value in schema_data.get('properties', {}).items():\n", - " if value.get('type') == 'object':\n", - " empty_json[key] = {}\n", - " elif value.get('type') == 'array':\n", - " empty_json[key] = []\n", - " else:\n", - " empty_json[key] = None\n", - "\n", - "# Fill empty JSON with examples provided in schema\n", - "def update_json_with_example(json_obj, schema_obj):\n", - " for key, value in schema_obj.get('properties', {}).items():\n", - "\n", - "\n", - " if value.get('type') == 'object':\n", - " json_obj[key] = {}\n", - " update_json_with_example(json_obj[key], value)\n", - " elif value.get('type') == 'array':\n", - " json_obj[key] = []\n", - " if value.get('items', {}).get('type') == 'object':\n", - " json_obj[key].append({})\n", - " update_json_with_example(json_obj[key][0], value['items'])\n", - " else:\n", - " example = None\n", - " if 'anyOf' in value:\n", - " for subschema in value['anyOf']:\n", - " try:\n", - " jsonschema.validate({key: subschema['examples'][0]}, {key: subschema})\n", - " example = subschema['examples'][0]\n", - " break\n", - " except jsonschema.ValidationError:\n", - " pass\n", - " else:\n", - " # Check if field is optional\n", - " if value.get('default') is not None or value.get('nullable') or value.get('optional'):\n", - " # If optional, use default value or set to null\n", - " json_obj[key] = value.get('default', None)\n", - " else:\n", - " # Otherwise, use example value\n", - " example = value.get('examples', [None])[0]\n", - " if example is not None:\n", - " json_obj[key] = example\n", - "\n", - "\n", - "update_json_with_example(empty_json, schema_data)\n", - "\n", - "# Print resulting JSON\n", - "#print(json.dumps(empty_json, indent=2))\n", - "\n", - "validator = jsonschema.Draft7Validator(schema_data)\n", - "errors = list(validator.iter_errors(empty_json))\n", - "\n", - "# Print detailed error messages for any validation errors\n", - "if errors:\n", - " print(f\"Validation failed with {len(errors)} error(s):\")\n", - " for i, error in enumerate(errors, start=1):\n", - " print(f\"Error {i}:\")\n", - " print(f\" Message: {error.message}\")\n", - " print(f\" Path: {'.'.join(str(p) for p in error.absolute_path)}\")\n", - " print(f\" Schema path: {'/'.join(str(p) for p in error.schema_path)}\")\n", - "else:\n", - " print(\"Validation successful!\")" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[{}]" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "empty_json['dataDisclosed']" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.12" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 78a14034f377e3c5b58daa07a804a768bc0b2fb9 Mon Sep 17 00:00:00 2001 From: tomijange Date: Thu, 11 May 2023 15:24:43 +0000 Subject: [PATCH 75/80] Overwritten by Github Actions --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index 1613a19..e8fc85c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -975,4 +975,4 @@ "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } ] - \ No newline at end of file + \ No newline at end of file From 94e639963cb97b6158a256e3be35126e21a7810c Mon Sep 17 00:00:00 2001 From: Thomas Janke Date: Thu, 11 May 2023 17:40:00 +0200 Subject: [PATCH 76/80] test gh action --- .github/workflows/main.yaml | 16 +- tilt-schema.json | 836 ++++++++---------------------------- 2 files changed, 195 insertions(+), 657 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index e5151b6..82aa76c 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -20,7 +20,10 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 + with: + # Make sure the actual branch is checked out when running on pull requests + ref: ${{ github.head_ref }} - name: Set up Python uses: actions/setup-python@v2 @@ -31,10 +34,9 @@ jobs: run: | python scripts/recompile.py python scripts/extract-example.py - git config user.name github-actions - git config user.email github-actions@github.com - git pull - git add . - git commit -m "combined the file" || true - git push + + - name: Commit & Push + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: Overwritten by Github Actions (Prettify tilt-schema.json) diff --git a/tilt-schema.json b/tilt-schema.json index b8dd971..4170d86 100644 --- a/tilt-schema.json +++ b/tilt-schema.json @@ -14,9 +14,7 @@ "version": 2, "language": "de", "status": "active", - "url": [ - "https://green-bikes.de/privacy" - ], + "url": ["https://green-bikes.de/privacy"], "_hash": "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" }, "controller": { @@ -29,10 +27,7 @@ "email": "contact@greencompany.de", "phone": "0049 151 1234 5678" }, - "url": [ - "https://green-bikes.de", - "https://bikes-that-are-green.de" - ], + "url": ["https://green-bikes.de", "https://bikes-that-are-green.de"], "sector": "J" }, "dataProtectionOfficer": { @@ -45,9 +40,7 @@ "dataDisclosed": [ { "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": [ - "E-mail address" - ], + "category": ["E-mail address"], "purposes": [ { "purpose": "Marketing", @@ -103,9 +96,7 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": [ - "SGB-100-42" - ], + "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max" } ], @@ -141,14 +132,9 @@ "accessAndDataPortability": { "available": true, "description": "Data access is possible through...", - "url": [ - "https://green-bikes.de/access" - ], + "url": ["https://green-bikes.de/access"], "email": "access@greencompany.de", - "identificationEvidences": [ - "ID card copy", - "Email verification" - ], + "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": { "amount": 0, "currency": "EUR" @@ -162,9 +148,7 @@ "sources": [ { "description": "This information could be retrieved from...", - "url": [ - "https://blueCompany.org" - ], + "url": ["https://blueCompany.org"], "publiclyAvailable": false, "origin": "received" } @@ -174,60 +158,37 @@ "rightToInformation": { "available": true, "description": "For the right to information please use this contact form and...", - "url": [ - "https://greencompany.org/rightToInformation" - ], + "url": ["https://greencompany.org/rightToInformation"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "ID card copy", - "Email verification" - ] + "identificationEvidences": ["ID card copy", "Email verification"] }, "rightToRectificationOrDeletion": { "available": true, "description": "For the right to rectification please use this contact form and...", - "url": [ - "https://greencompany.org/rights" - ], + "url": ["https://greencompany.org/rights"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "ID card copy", - "Email verification" - ] + "identificationEvidences": ["ID card copy", "Email verification"] }, "rightToDataPortability": { "available": false, "description": "Data portability is only possible when...", - "url": [ - "https://greencompany.org/rights" - ], + "url": ["https://greencompany.org/rights"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "ID card copy" - ] + "identificationEvidences": ["ID card copy"] }, "rightToWithdrawConsent": { "available": true, "description": "For the right to withdraw consent please use this contact form and...", - "url": [ - "https://greencompany.org/rights" - ], + "url": ["https://greencompany.org/rights"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "Email verification" - ] + "identificationEvidences": ["Email verification"] }, "rightToComplain": { "available": true, "description": "For the right to complain please use this contact form and...", - "url": [ - "https://greencompany.org/rights" - ], + "url": ["https://greencompany.org/rights"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "ID card copy", - "Email verification" - ], + "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": { "name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", @@ -244,10 +205,7 @@ "changesOfPurpose": [ { "description": "Due to techncial requirements...", - "affectedDataCategories": [ - "Email adress", - "Credit score" - ], + "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } @@ -269,9 +227,7 @@ "version": 2, "language": "de", "status": "active", - "url": [ - "https://green-bikes.de/privacy" - ], + "url": ["https://green-bikes.de/privacy"], "_hash": "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" } ], @@ -292,18 +248,14 @@ "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": [ - "f1424f86-ca0f-4f0c-9438-43cc00509931" - ] + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] }, "name": { "$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", - "examples": [ - "Green Company" - ] + "examples": ["Green Company"] }, "created": { "$id": "#/properties/meta/properties/created", @@ -311,9 +263,7 @@ "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": [ - "2020-04-03T15:53:05.929588" - ] + "examples": ["2020-04-03T15:53:05.929588"] }, "modified": { "$id": "#/properties/meta/properties/modified", @@ -321,9 +271,7 @@ "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": [ - "2020-04-03T15:53:05.929588" - ] + "examples": ["2020-04-03T15:53:05.929588"] }, "version": { "$id": "#/properties/meta/properties/version", @@ -332,9 +280,7 @@ "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, - "examples": [ - 2 - ] + "examples": [2] }, "language": { "$id": "#/properties/meta/properties/language", @@ -343,9 +289,7 @@ "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", - "examples": [ - "de" - ] + "examples": ["de"] }, "status": { "$id": "#/properties/meta/properties/status", @@ -354,10 +298,7 @@ "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", - "examples": [ - "active", - "inactive" - ] + "examples": ["active", "inactive"] }, "url": { "$id": "#/properties/meta/properties/url", @@ -365,11 +306,7 @@ "title": "Url", "description": "URL(s) to the privacy policy of this schema. Multiple URLs can be used in case of potential sub-entities pointing to the same entity", "format": "uri-reference", - "examples": [ - [ - "https://green-bikes.de/privacy" - ] - ], + "examples": [["https://green-bikes.de/privacy"]], "minItems": 1, "uniqueItems": true, "items": { @@ -407,46 +344,32 @@ "email": "contact@greencompany.de", "phone": "0049 151 1234 5678" }, - "url": [ - "https://green-bikes.de", - "https://bikes-that-are-green.de" - ], + "url": ["https://green-bikes.de", "https://bikes-that-are-green.de"], "sector": "J" } ], - "required": [ - "name", - "address", - "country", - "representative" - ], + "required": ["name", "address", "country", "representative"], "properties": { "name": { "$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", - "examples": [ - "Green Company AG" - ] + "examples": ["Green Company AG"] }, "division": { "$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": [ - "Product line e-mobility" - ] + "examples": ["Product line e-mobility"] }, "address": { "$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", - "examples": [ - "Wolfsburger Ring 2, 38440 Berlin" - ] + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] }, "country": { "$id": "#/properties/controller/properties/country", @@ -457,9 +380,7 @@ "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", - "examples": [ - "DE" - ] + "examples": ["DE"] }, "representative": { "$id": "#/properties/controller/properties/representative", @@ -473,19 +394,14 @@ "phone": "0049 151 1234 5678" } ], - "required": [ - "name", - "email" - ], + "required": ["name", "email"], "properties": { "name": { "$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", - "examples": [ - "Jane Super" - ] + "examples": ["Jane Super"] }, "email": { "$id": "#/properties/controller/properties/representative/properties/email", @@ -493,9 +409,7 @@ "title": "Email", "description": "Email address of the controller's representative.", "format": "email", - "examples": [ - "contact@greencompany.de" - ] + "examples": ["contact@greencompany.de"] }, "phone": { "$id": "#/properties/controller/properties/representative/properties/phone", @@ -503,9 +417,7 @@ "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": [ - "+49 151 1234 5678" - ] + "examples": ["+49 151 1234 5678"] } } }, @@ -520,19 +432,14 @@ "example": "https://green-bikes.de" }, "examples": [ - [ - "https://green-bikes.de", - "https://bikes-that-are-green.de" - ] + ["https://green-bikes.de", "https://bikes-that-are-green.de"] ] }, "sector": { "$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", - "examples": [ - "J" - ], + "examples": ["J"], "maxLength": 1, "pattern": "[A-Z]" } @@ -552,30 +459,21 @@ "phone": "0049 151 1234 5678" } ], - "required": [ - "name", - "address", - "country", - "email" - ], + "required": ["name", "address", "country", "email"], "properties": { "name": { "$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", - "examples": [ - "Jane Super" - ] + "examples": ["Jane Super"] }, "address": { "$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", - "examples": [ - "Wolfsburger Ring 2, 38440 Berlin" - ] + "examples": ["Wolfsburger Ring 2, 38440 Berlin"] }, "country": { "$id": "#/properties/dataProtectionOfficer/properties/country", @@ -585,9 +483,7 @@ "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", - "examples": [ - "DE" - ] + "examples": ["DE"] }, "email": { "$id": "#/properties/dataProtectionOfficer/properties/email", @@ -595,9 +491,7 @@ "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", - "examples": [ - "contact@greencompany.de" - ] + "examples": ["contact@greencompany.de"] }, "phone": { "$id": "#/properties/dataProtectionOfficer/properties/phone", @@ -605,9 +499,7 @@ "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": [ - "0049 151 1234 5678" - ] + "examples": ["0049 151 1234 5678"] } } }, @@ -620,9 +512,7 @@ [ { "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": [ - "E-mail address" - ], + "category": ["E-mail address"], "purposes": [ { "purpose": "Marketing", @@ -678,9 +568,7 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": [ - "SGB-100-42" - ], + "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max" } ], @@ -759,9 +647,7 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": [ - "SGB-100-42" - ], + "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max" } ], @@ -779,20 +665,14 @@ "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": [ - "f1424f86-ca0f-4f0c-9438-43cc00509931" - ] + "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] }, "category": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": [ - [ - "E-mail address" - ] - ], + "examples": [["E-mail address"]], "items": { "type": "string" } @@ -828,9 +708,7 @@ "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": [ - "Marketing" - ] + "examples": ["Marketing"] }, "description": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", @@ -842,10 +720,7 @@ ] } }, - "required": [ - "purpose", - "description" - ] + "required": ["purpose", "description"] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", @@ -888,9 +763,7 @@ "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": [ - "GDPR-99-1-a" - ] + "examples": ["GDPR-99-1-a"] }, "description": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", @@ -902,9 +775,7 @@ ] } }, - "required": [ - "reference" - ] + "required": ["reference"] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", @@ -942,14 +813,10 @@ "const": true } }, - "required": [ - "exists" - ] + "required": ["exists"] }, "then": { - "required": [ - "reasoning" - ] + "required": ["reasoning"] }, "properties": { "exists": { @@ -958,10 +825,7 @@ "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, - "examples": [ - true, - false - ] + "examples": [true, false] }, "reasoning": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", @@ -1031,27 +895,21 @@ "type": "string", "title": "Name", "description": "The name of the third party (recipient).", - "examples": [ - "Yellow Company AG" - ] + "examples": ["Yellow Company AG"] }, "division": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": [ - "Product line e-mobility" - ] + "examples": ["Product line e-mobility"] }, "address": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", - "examples": [ - "Triana 123, 9999 Seville" - ] + "examples": ["Triana 123, 9999 Seville"] }, "country": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", @@ -1061,9 +919,7 @@ "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", - "examples": [ - "ES" - ] + "examples": ["ES"] }, "domain": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/domain", @@ -1071,9 +927,7 @@ "title": "Domain", "description": "The domain of the third party (recipient) as a url starting with protocol.", "pattern": "^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$", - "examples": [ - "https://yellowcompany.es" - ] + "examples": ["https://yellowcompany.es"] }, "representative": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", @@ -1093,9 +947,7 @@ "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", - "examples": [ - "Jane Super" - ] + "examples": ["Jane Super"] }, "email": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", @@ -1103,9 +955,7 @@ "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", - "examples": [ - "contact@yellowcompany.de" - ] + "examples": ["contact@yellowcompany.de"] }, "phone": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", @@ -1113,9 +963,7 @@ "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": [ - "0049 151 1234 9876" - ] + "examples": ["0049 151 1234 9876"] } } }, @@ -1124,9 +972,7 @@ "type": "string", "title": "Category", "description": "The category of the the recipient.", - "examples": [ - "Marketing content provider" - ] + "examples": ["Marketing content provider"] }, "url": { "type": "array", @@ -1139,9 +985,7 @@ } } }, - "required": [ - "category" - ] + "required": ["category"] }, { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", @@ -1157,14 +1001,10 @@ "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": [ - "Responsible Statistical Institutes" - ] + "examples": ["Responsible Statistical Institutes"] } }, - "required": [ - "category" - ] + "required": ["category"] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", @@ -1192,9 +1032,7 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": [ - "SGB-100-42" - ], + "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max" } ] @@ -1220,9 +1058,7 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": [ - "SGB-100-42" - ], + "legalBasisConditional": ["SGB-100-42"], "aggregationFunction": "max" } ], @@ -1262,9 +1098,7 @@ "type": "string", "title": "Description", "description": "The description why the data has to be stored..", - "examples": [ - "Creating backups." - ] + "examples": ["Creating backups."] }, "ttl": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", @@ -1277,10 +1111,7 @@ ] } }, - "required": [ - "description", - "ttl" - ] + "required": ["description", "ttl"] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", @@ -1317,11 +1148,7 @@ "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [ - [ - "SGB-100-42" - ] - ], + "examples": [["SGB-100-42"]], "additionalItems": true, "items": { "anyOf": [ @@ -1329,9 +1156,7 @@ "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": [ - "SGB-100-42" - ] + "examples": ["SGB-100-42"] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", @@ -1344,20 +1169,11 @@ "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", - "enum": [ - "min", - "max", - "sum", - "avg" - ], - "examples": [ - "max" - ] + "enum": ["min", "max", "sum", "avg"], + "examples": ["max"] } }, - "required": [ - "aggregationFunction" - ] + "required": ["aggregationFunction"] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", @@ -1390,10 +1206,7 @@ "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, - "examples": [ - false, - true - ] + "examples": [false, true] }, "contractualRegulation": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", @@ -1401,10 +1214,7 @@ "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, - "examples": [ - false, - true - ] + "examples": [false, true] }, "obligationToProvide": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", @@ -1412,10 +1222,7 @@ "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, - "examples": [ - false, - true - ] + "examples": [false, true] }, "consequences": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", @@ -1509,9 +1316,7 @@ "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", - "examples": [ - "ES" - ] + "examples": ["ES"] }, "adequacyDecision": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", @@ -1529,14 +1334,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description" - ] + "required": ["description"] }, "properties": { "available": { @@ -1545,10 +1346,7 @@ "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, - "examples": [ - true, - false - ] + "examples": [true, false] }, "description": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", @@ -1578,14 +1376,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description" - ] + "required": ["description"] }, "properties": { "available": { @@ -1594,10 +1388,7 @@ "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, - "examples": [ - true, - false - ] + "examples": [true, false] }, "description": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", @@ -1627,14 +1418,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description" - ] + "required": ["description"] }, "properties": { "available": { @@ -1643,19 +1430,14 @@ "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, - "examples": [ - true, - false - ] + "examples": [true, false] }, "description": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", - "examples": [ - "These rights are given because of..." - ] + "examples": ["These rights are given because of..."] } } }, @@ -1676,14 +1458,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description" - ] + "required": ["description"] }, "properties": { "available": { @@ -1692,10 +1470,7 @@ "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, - "examples": [ - true, - false - ] + "examples": [true, false] }, "description": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", @@ -1724,14 +1499,9 @@ { "available": true, "description": "Data access is possible through...", - "url": [ - "https://green-bikes.de/access" - ], + "url": ["https://green-bikes.de/access"], "email": "access@greencompany.de", - "identificationEvidences": [ - "ID card copy", - "Email verification" - ], + "identificationEvidences": ["ID card copy", "Email verification"], "administrativeFee": { "amount": 0, "currency": "EUR" @@ -1739,9 +1509,7 @@ "dataFormat": "json" } ], - "required": [ - "available" - ], + "required": ["available"], "properties": { "available": { "$id": "#/properties/accessAndDataPortability/properties/available", @@ -1749,9 +1517,7 @@ "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, - "examples": [ - true - ] + "examples": [true] }, "description": { "$id": "#/properties/accessAndDataPortability/properties/description", @@ -1769,11 +1535,7 @@ "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", - "examples": [ - [ - "https://green-bikes.de/access" - ] - ], + "examples": [["https://green-bikes.de/access"]], "uniqueItems": true, "items": { "type": "string", @@ -1787,31 +1549,21 @@ "title": "Email", "description": "Contact email address", "format": "email", - "examples": [ - "access@greencompany.de" - ] + "examples": ["access@greencompany.de"] }, "identificationEvidences": { "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", - "examples": [ - [ - "ID card copy", - "Email verification" - ] - ], + "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": [ - "ID card copy", - "Email verification" - ] + "examples": ["ID card copy", "Email verification"] } ], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", @@ -1836,9 +1588,7 @@ "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, - "examples": [ - 0 - ] + "examples": [0] }, "currency": { "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", @@ -1848,39 +1598,24 @@ "default": "EUR", "minLength": 3, "maxLength": 3, - "examples": [ - "EUR" - ] + "examples": ["EUR"] } }, - "required": [ - "amount", - "currency" - ] + "required": ["amount", "currency"] }, "dataFormats": { "$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", - "default": [ - "json" - ], - "examples": [ - [ - "json", - "xml" - ] - ], + "default": ["json"], + "examples": [["json", "xml"]], "items": { "anyOf": [ { "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", - "examples": [ - "json", - "xml" - ] + "examples": ["json", "xml"] } ], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", @@ -1902,9 +1637,7 @@ "sources": [ { "description": "This information could be retrieved from...", - "url": [ - "https://blueCompany.org" - ], + "url": ["https://blueCompany.org"], "publiclyAvailable": false, "origin": "received" } @@ -1925,9 +1658,7 @@ "sources": [ { "description": "This information could be retrieved from...", - "url": [ - "https://blueCompany.org" - ], + "url": ["https://blueCompany.org"], "publiclyAvailable": false, "origin": "received" } @@ -1940,18 +1671,14 @@ "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": [ - "f1423cc00509931" - ] + "examples": ["f1423cc00509931"] }, "dataCategory": { "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", - "examples": [ - "Creditworthiness" - ] + "examples": ["Creditworthiness"] }, "sources": { "$id": "#/properties/sources/items/anyOf/0/properties/sources", @@ -1962,9 +1689,7 @@ [ { "description": "This information could be retrieved from...", - "url": [ - "https://blueCompany.org" - ], + "url": ["https://blueCompany.org"], "publiclyAvailable": false, "origin": "received" } @@ -1979,9 +1704,7 @@ "examples": [ { "description": "This information could be retrieved from...", - "url": [ - "https://blueCompany.org" - ], + "url": ["https://blueCompany.org"], "publiclyAvailable": false, "origin": "received" } @@ -2002,15 +1725,11 @@ "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", - "examples": [ - "https://blueCompany.org" - ], + "examples": ["https://blueCompany.org"], "items": { "type": "string", "format": "uri-reference", - "example": [ - "https://blueCompany.org" - ] + "example": ["https://blueCompany.org"] } }, "publiclyAvailable": { @@ -2019,24 +1738,15 @@ "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, - "examples": [ - false, - true - ] + "examples": [false, true] }, "origin": { "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/origin", "type": "string", "title": "Origin", "description": "How was the data obtained?", - "enum": [ - "received", - "observed", - "inferred" - ], - "examples": [ - "received" - ] + "enum": ["received", "observed", "inferred"], + "examples": ["received"] } }, "required": [ @@ -2052,11 +1762,7 @@ } } }, - "required": [ - "_id", - "dataCategory", - "sources" - ] + "required": ["_id", "dataCategory", "sources"] } ], "$id": "#/properties/sources/items", @@ -2072,14 +1778,9 @@ { "available": true, "description": "For the right to information please use this contact form and...", - "url": [ - "https://greencompany.org/rightToInformation" - ], + "url": ["https://greencompany.org/rightToInformation"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "ID card copy", - "Email verification" - ] + "identificationEvidences": ["ID card copy", "Email verification"] } ], "if": { @@ -2088,14 +1789,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description" - ] + "required": ["description"] }, "properties": { "available": { @@ -2104,9 +1801,7 @@ "title": "Available", "description": "Possibility available?", "default": true, - "examples": [ - true - ] + "examples": [true] }, "description": { "$id": "#/properties/rightToInformation/properties/description", @@ -2123,11 +1818,7 @@ "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", - "examples": [ - [ - "https://greencompany.org/rightToInformation" - ] - ], + "examples": [["https://greencompany.org/rightToInformation"]], "minItems": 1, "items": { "type": "string", @@ -2140,30 +1831,20 @@ "type": "string", "title": "Email", "format": "email", - "examples": [ - "contact@greencompany.de" - ] + "examples": ["contact@greencompany.de"] }, "identificationEvidences": { "$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [ - [ - "ID card copy", - "Email verification" - ] - ], + "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": [ - "ID card copy", - "Email verification" - ] + "examples": ["ID card copy", "Email verification"] } ], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", @@ -2181,14 +1862,9 @@ { "available": true, "description": "For the right to rectification please use this contact form and...", - "url": [ - "https://greencompany.org/rights" - ], + "url": ["https://greencompany.org/rights"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "ID card copy", - "Email verification" - ] + "identificationEvidences": ["ID card copy", "Email verification"] } ], "if": { @@ -2197,14 +1873,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description" - ] + "required": ["description"] }, "properties": { "available": { @@ -2213,10 +1885,7 @@ "title": "Available", "description": "Possibility available?", "default": true, - "examples": [ - true, - false - ] + "examples": [true, false] }, "description": { "$id": "#/properties/rightToRectificationOrDeletion/properties/description", @@ -2231,11 +1900,7 @@ "type": "array", "title": "Url", "format": "uri-reference", - "examples": [ - [ - "https://greencompany.org/rights" - ] - ], + "examples": [["https://greencompany.org/rights"]], "minItems": 1, "uniqueItems": true, "items": { @@ -2249,30 +1914,20 @@ "type": "string", "title": "Email", "format": "email", - "examples": [ - "contact@greencompany.de" - ] + "examples": ["contact@greencompany.de"] }, "identificationEvidences": { "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [ - [ - "ID card copy", - "Email verification" - ] - ], + "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": [ - "ID card copy", - "Email verification" - ] + "examples": ["ID card copy", "Email verification"] } ], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", @@ -2290,13 +1945,9 @@ { "available": true, "description": "Data portability is only possible when...", - "url": [ - "https://greencompany.org/rights" - ], + "url": ["https://greencompany.org/rights"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "ID card copy" - ] + "identificationEvidences": ["ID card copy"] } ], "if": { @@ -2305,14 +1956,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description" - ] + "required": ["description"] }, "properties": { "available": { @@ -2320,29 +1967,20 @@ "type": "boolean", "title": "Available", "default": true, - "examples": [ - false, - true - ] + "examples": [false, true] }, "description": { "$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", - "examples": [ - "Data portability is only possible when..." - ] + "examples": ["Data portability is only possible when..."] }, "url": { "$id": "#/properties/rightToDataPortability/properties/url", "type": "array", "title": "Url", "format": "uri-reference", - "examples": [ - [ - "https://greencompany.org/rights" - ] - ], + "examples": [["https://greencompany.org/rights"]], "minItems": 1, "uniqueItems": true, "items": { @@ -2356,28 +1994,20 @@ "type": "string", "title": "Email", "format": "email", - "examples": [ - "contact@greencompany.de" - ] + "examples": ["contact@greencompany.de"] }, "identificationEvidences": { "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [ - [ - "ID card copy" - ] - ], + "examples": [["ID card copy"]], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": [ - "ID card copy" - ] + "examples": ["ID card copy"] } ], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", @@ -2395,13 +2025,9 @@ { "available": true, "description": "For the right to withdraw consent please use this contact form and...", - "url": [ - "https://greencompany.org/rights" - ], + "url": ["https://greencompany.org/rights"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "Email verification" - ] + "identificationEvidences": ["Email verification"] } ], "if": { @@ -2410,14 +2036,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description" - ] + "required": ["description"] }, "properties": { "available": { @@ -2425,10 +2047,7 @@ "type": "boolean", "title": "Available", "default": true, - "examples": [ - true, - false - ] + "examples": [true, false] }, "description": { "$id": "#/properties/rightToWithdrawConsent/properties/description", @@ -2443,11 +2062,7 @@ "type": "array", "title": "Url", "format": "uri-reference", - "examples": [ - [ - "https://greencompany.org/rights" - ] - ], + "examples": [["https://greencompany.org/rights"]], "minItems": 1, "uniqueItems": true, "items": { @@ -2461,28 +2076,20 @@ "type": "string", "title": "Email", "format": "email", - "examples": [ - "contact@greencompany.de" - ] + "examples": ["contact@greencompany.de"] }, "identificationEvidences": { "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [ - [ - "Email verification" - ] - ], + "examples": [["Email verification"]], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": [ - "Email verification" - ] + "examples": ["Email verification"] } ], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", @@ -2500,14 +2107,9 @@ { "available": true, "description": "For the right to complain please use this contact form and...", - "url": [ - "https://greencompany.org/rights" - ], + "url": ["https://greencompany.org/rights"], "email": "contact@greencompany.de", - "identificationEvidences": [ - "ID card copy", - "Email verification" - ], + "identificationEvidences": ["ID card copy", "Email verification"], "supervisoryAuthority": { "name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", @@ -2523,15 +2125,10 @@ "const": true } }, - "required": [ - "available" - ] + "required": ["available"] }, "then": { - "required": [ - "description", - "supervisoryAuthority" - ] + "required": ["description", "supervisoryAuthority"] }, "properties": { "available": { @@ -2540,10 +2137,7 @@ "title": "Available", "description": "Is this right available?", "default": true, - "examples": [ - true, - false - ] + "examples": [true, false] }, "description": { "$id": "#/properties/rightToComplain/properties/description", @@ -2558,11 +2152,7 @@ "type": "array", "title": "Url", "format": "uri-reference", - "examples": [ - [ - "https://greencompany.org/rights" - ] - ], + "examples": [["https://greencompany.org/rights"]], "minItems": 1, "uniqueItems": true, "items": { @@ -2576,30 +2166,20 @@ "type": "string", "title": "Email", "format": "email", - "examples": [ - "contact@greencompany.de" - ] + "examples": ["contact@greencompany.de"] }, "identificationEvidences": { "$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [ - [ - "ID card copy", - "Email verification" - ] - ], + "examples": [["ID card copy", "Email verification"]], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": [ - "ID card copy", - "Email verification" - ] + "examples": ["ID card copy", "Email verification"] } ], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", @@ -2626,18 +2206,14 @@ "type": "string", "title": "Name", "description": "Name of the supervisory authority.", - "examples": [ - "Commissioner for Data Protection" - ] + "examples": ["Commissioner for Data Protection"] }, "address": { "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", - "examples": [ - "Friedrichstrasse 219, 10969 Berlin" - ] + "examples": ["Friedrichstrasse 219, 10969 Berlin"] }, "country": { "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", @@ -2646,9 +2222,7 @@ "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, - "examples": [ - "DE" - ] + "examples": ["DE"] }, "email": { "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", @@ -2656,9 +2230,7 @@ "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", - "examples": [ - "mailbox@privacy-berlin.de" - ] + "examples": ["mailbox@privacy-berlin.de"] }, "phone": { "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", @@ -2666,14 +2238,10 @@ "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": [ - "0049 444 222 111" - ] + "examples": ["0049 444 222 111"] } }, - "required": [ - "name" - ] + "required": ["name"] } } }, @@ -2695,15 +2263,10 @@ "const": true } }, - "required": [ - "inUse" - ] + "required": ["inUse"] }, "then": { - "required": [ - "logicInvolved", - "scopeAndIntendedEffects" - ] + "required": ["logicInvolved", "scopeAndIntendedEffects"] }, "properties": { "inUse": { @@ -2712,28 +2275,21 @@ "title": "InUse", "description": "Is automated decision making in use?", "default": true, - "examples": [ - true, - false - ] + "examples": [true, false] }, "logicInvolved": { "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", - "examples": [ - "The personal data are processed as follows..." - ] + "examples": ["The personal data are processed as follows..."] }, "scopeAndIntendedEffects": { "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", - "examples": [ - "From processing follows..." - ] + "examples": ["From processing follows..."] } } }, @@ -2746,10 +2302,7 @@ [ { "description": "Due to technical requirements...", - "affectedDataCategories": [ - "Email adress", - "Credit score" - ], + "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } @@ -2764,10 +2317,7 @@ "examples": [ { "description": "Due to technical requirements...", - "affectedDataCategories": [ - "Email adress", - "Credit score" - ], + "affectedDataCategories": ["Email adress", "Credit score"], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } @@ -2778,31 +2328,21 @@ "type": "string", "title": "Description", "description": "Description of the change of purpose.", - "examples": [ - "Due to technical requirements..." - ] + "examples": ["Due to technical requirements..."] }, "affectedDataCategories": { "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", - "examples": [ - [ - "Email adress", - "Credit score" - ] - ], + "examples": [["Email adress", "Credit score"]], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", - "examples": [ - "Email adress", - "Credit score" - ] + "examples": ["Email adress", "Credit score"] } ], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", @@ -2815,18 +2355,14 @@ "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": [ - "2020-08-20" - ] + "examples": ["2020-08-20"] }, "urlOfNewVersion": { "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": [ - "https://greencomp.de/tilt/2" - ] + "examples": ["https://greencomp.de/tilt/2"] } } } @@ -2852,4 +2388,4 @@ "automatedDecisionMaking", "changesOfPurpose" ] -} \ No newline at end of file +} From 79ea6d0869a1b2030184817d530b82467837457f Mon Sep 17 00:00:00 2001 From: tomijange Date: Thu, 11 May 2023 15:40:40 +0000 Subject: [PATCH 77/80] Overwritten by Github Actions (Prettify tilt-schema.json) --- tilt-schema.json | 836 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 650 insertions(+), 186 deletions(-) diff --git a/tilt-schema.json b/tilt-schema.json index 4170d86..b8dd971 100644 --- a/tilt-schema.json +++ b/tilt-schema.json @@ -14,7 +14,9 @@ "version": 2, "language": "de", "status": "active", - "url": ["https://green-bikes.de/privacy"], + "url": [ + "https://green-bikes.de/privacy" + ], "_hash": "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" }, "controller": { @@ -27,7 +29,10 @@ "email": "contact@greencompany.de", "phone": "0049 151 1234 5678" }, - "url": ["https://green-bikes.de", "https://bikes-that-are-green.de"], + "url": [ + "https://green-bikes.de", + "https://bikes-that-are-green.de" + ], "sector": "J" }, "dataProtectionOfficer": { @@ -40,7 +45,9 @@ "dataDisclosed": [ { "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], + "category": [ + "E-mail address" + ], "purposes": [ { "purpose": "Marketing", @@ -96,7 +103,9 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": ["SGB-100-42"], + "legalBasisConditional": [ + "SGB-100-42" + ], "aggregationFunction": "max" } ], @@ -132,9 +141,14 @@ "accessAndDataPortability": { "available": true, "description": "Data access is possible through...", - "url": ["https://green-bikes.de/access"], + "url": [ + "https://green-bikes.de/access" + ], "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], "administrativeFee": { "amount": 0, "currency": "EUR" @@ -148,7 +162,9 @@ "sources": [ { "description": "This information could be retrieved from...", - "url": ["https://blueCompany.org"], + "url": [ + "https://blueCompany.org" + ], "publiclyAvailable": false, "origin": "received" } @@ -158,37 +174,60 @@ "rightToInformation": { "available": true, "description": "For the right to information please use this contact form and...", - "url": ["https://greencompany.org/rightToInformation"], + "url": [ + "https://greencompany.org/rightToInformation" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] }, "rightToRectificationOrDeletion": { "available": true, "description": "For the right to rectification please use this contact form and...", - "url": ["https://greencompany.org/rights"], + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] }, "rightToDataPortability": { "available": false, "description": "Data portability is only possible when...", - "url": ["https://greencompany.org/rights"], + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] + "identificationEvidences": [ + "ID card copy" + ] }, "rightToWithdrawConsent": { "available": true, "description": "For the right to withdraw consent please use this contact form and...", - "url": ["https://greencompany.org/rights"], + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] + "identificationEvidences": [ + "Email verification" + ] }, "rightToComplain": { "available": true, "description": "For the right to complain please use this contact form and...", - "url": ["https://greencompany.org/rights"], + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], "supervisoryAuthority": { "name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", @@ -205,7 +244,10 @@ "changesOfPurpose": [ { "description": "Due to techncial requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } @@ -227,7 +269,9 @@ "version": 2, "language": "de", "status": "active", - "url": ["https://green-bikes.de/privacy"], + "url": [ + "https://green-bikes.de/privacy" + ], "_hash": "be81d309088dde861ab5fc4d62d4bbfe0aeef3e3baf2f5362c1086f451f0a1e7" } ], @@ -248,14 +292,18 @@ "type": "string", "title": "_id", "description": "The ID follows the database-specific implementation and does not have to be set in advance; but should offer as much entropy as possible for globally unique identifiers.", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + "examples": [ + "f1424f86-ca0f-4f0c-9438-43cc00509931" + ] }, "name": { "$id": "#/properties/meta/properties/name", "type": "string", "title": "Name", "description": "Name of the data controller.", - "examples": ["Green Company"] + "examples": [ + "Green Company" + ] }, "created": { "$id": "#/properties/meta/properties/created", @@ -263,7 +311,9 @@ "title": "Created", "description": "Creation date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] + "examples": [ + "2020-04-03T15:53:05.929588" + ] }, "modified": { "$id": "#/properties/meta/properties/modified", @@ -271,7 +321,9 @@ "title": "Modified", "description": "Last modified date of the document as an ISO-8601 time code.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-04-03T15:53:05.929588"] + "examples": [ + "2020-04-03T15:53:05.929588" + ] }, "version": { "$id": "#/properties/meta/properties/version", @@ -280,7 +332,9 @@ "description": "This number serves to version documents of a controller.", "default": 1, "minimum": 1, - "examples": [2] + "examples": [ + 2 + ] }, "language": { "$id": "#/properties/meta/properties/language", @@ -289,7 +343,9 @@ "description": "All language abbreviation codes follow the established ISO 639-1 standard as identifiers for names of languages.", "pattern": "^(aa|ab|ae|af|ak|am|an|ar|as|av|ay|az|az|ba|be|bg|bh|bi|bm|bn|bo|br|bs|ca|ce|ch|co|cr|cs|cu|cv|cy|da|de|dv|dz|ee|el|en|eo|es|et|eu|fa|ff|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|gv|ha|he|hi|ho|hr|ht|hu|hy|hz|ia|id|ie|ig|ii|ik|io|is|it|iu|ja|jv|ka|kg|ki|kj|kk|kl|km|kn|ko|kr|ks|ku|kv|kw|ky|la|lb|lg|li|ln|lo|lt|lu|lv|mg|mh|mi|mk|ml|mn|mr|ms|mt|my|na|nb|nd|ne|ng|nl|nn|no|nr|nv|ny|oc|oj|om|or|os|pa|pi|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sc|sd|se|sg|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ty|ug|uk|ur|uz|ve|vi|vo|wa|wo|xh|yi|yo|za|zh|zu)$", "default": "en", - "examples": ["de"] + "examples": [ + "de" + ] }, "status": { "$id": "#/properties/meta/properties/status", @@ -298,7 +354,10 @@ "description": "The status of an instance can be active or inactive depending on the policy's legal force.", "default": "active", "pattern": "^(active|inactive)$", - "examples": ["active", "inactive"] + "examples": [ + "active", + "inactive" + ] }, "url": { "$id": "#/properties/meta/properties/url", @@ -306,7 +365,11 @@ "title": "Url", "description": "URL(s) to the privacy policy of this schema. Multiple URLs can be used in case of potential sub-entities pointing to the same entity", "format": "uri-reference", - "examples": [["https://green-bikes.de/privacy"]], + "examples": [ + [ + "https://green-bikes.de/privacy" + ] + ], "minItems": 1, "uniqueItems": true, "items": { @@ -344,32 +407,46 @@ "email": "contact@greencompany.de", "phone": "0049 151 1234 5678" }, - "url": ["https://green-bikes.de", "https://bikes-that-are-green.de"], + "url": [ + "https://green-bikes.de", + "https://bikes-that-are-green.de" + ], "sector": "J" } ], - "required": ["name", "address", "country", "representative"], + "required": [ + "name", + "address", + "country", + "representative" + ], "properties": { "name": { "$id": "#/properties/controller/properties/name", "type": "string", "title": "Name", "description": "Name of the controller.", - "examples": ["Green Company AG"] + "examples": [ + "Green Company AG" + ] }, "division": { "$id": "#/properties/controller/properties/division", "type": "string", "title": "Division", "description": "Serves to differentiate between different areas of a company; particularly relevant for large companies.", - "examples": ["Product line e-mobility"] + "examples": [ + "Product line e-mobility" + ] }, "address": { "$id": "#/properties/controller/properties/address", "type": "string", "title": "Address", "description": "Address of the controller.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + "examples": [ + "Wolfsburger Ring 2, 38440 Berlin" + ] }, "country": { "$id": "#/properties/controller/properties/country", @@ -380,7 +457,9 @@ "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] + "examples": [ + "DE" + ] }, "representative": { "$id": "#/properties/controller/properties/representative", @@ -394,14 +473,19 @@ "phone": "0049 151 1234 5678" } ], - "required": ["name", "email"], + "required": [ + "name", + "email" + ], "properties": { "name": { "$id": "#/properties/controller/properties/representative/properties/name", "type": "string", "title": "Name", "description": "Name of the controller's representative.", - "examples": ["Jane Super"] + "examples": [ + "Jane Super" + ] }, "email": { "$id": "#/properties/controller/properties/representative/properties/email", @@ -409,7 +493,9 @@ "title": "Email", "description": "Email address of the controller's representative.", "format": "email", - "examples": ["contact@greencompany.de"] + "examples": [ + "contact@greencompany.de" + ] }, "phone": { "$id": "#/properties/controller/properties/representative/properties/phone", @@ -417,7 +503,9 @@ "title": "Phone", "description": "Phone number of the controller's representative.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["+49 151 1234 5678"] + "examples": [ + "+49 151 1234 5678" + ] } } }, @@ -432,14 +520,19 @@ "example": "https://green-bikes.de" }, "examples": [ - ["https://green-bikes.de", "https://bikes-that-are-green.de"] + [ + "https://green-bikes.de", + "https://bikes-that-are-green.de" + ] ] }, "sector": { "$id": "#/properties/controller/properties/sector", "type": "string", "description": "The industry of the controller according to UN ISIC Rev. 4", - "examples": ["J"], + "examples": [ + "J" + ], "maxLength": 1, "pattern": "[A-Z]" } @@ -459,21 +552,30 @@ "phone": "0049 151 1234 5678" } ], - "required": ["name", "address", "country", "email"], + "required": [ + "name", + "address", + "country", + "email" + ], "properties": { "name": { "$id": "#/properties/dataProtectionOfficer/properties/name", "type": "string", "title": "Name", "description": "The full name of the Data Protection Officer.", - "examples": ["Jane Super"] + "examples": [ + "Jane Super" + ] }, "address": { "$id": "#/properties/dataProtectionOfficer/properties/address", "type": "string", "title": "Address", "description": "Address of the DPO.", - "examples": ["Wolfsburger Ring 2, 38440 Berlin"] + "examples": [ + "Wolfsburger Ring 2, 38440 Berlin" + ] }, "country": { "$id": "#/properties/dataProtectionOfficer/properties/country", @@ -483,7 +585,9 @@ "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", - "examples": ["DE"] + "examples": [ + "DE" + ] }, "email": { "$id": "#/properties/dataProtectionOfficer/properties/email", @@ -491,7 +595,9 @@ "title": "Email", "description": "The contact email address of the Data Protection Officer.", "format": "email", - "examples": ["contact@greencompany.de"] + "examples": [ + "contact@greencompany.de" + ] }, "phone": { "$id": "#/properties/dataProtectionOfficer/properties/phone", @@ -499,7 +605,9 @@ "title": "Phone", "description": "The phone number of the Data Protection Officer (may include country prefix).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 5678"] + "examples": [ + "0049 151 1234 5678" + ] } } }, @@ -512,7 +620,9 @@ [ { "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931", - "category": ["E-mail address"], + "category": [ + "E-mail address" + ], "purposes": [ { "purpose": "Marketing", @@ -568,7 +678,9 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": ["SGB-100-42"], + "legalBasisConditional": [ + "SGB-100-42" + ], "aggregationFunction": "max" } ], @@ -647,7 +759,9 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": ["SGB-100-42"], + "legalBasisConditional": [ + "SGB-100-42" + ], "aggregationFunction": "max" } ], @@ -665,14 +779,20 @@ "type": "string", "title": "_id", "description": "The id of a data item that is disclosed. The id is necessary to distinguish several processing tasks of the same data item (locally unique ID that can be based on the database implementation).", - "examples": ["f1424f86-ca0f-4f0c-9438-43cc00509931"] + "examples": [ + "f1424f86-ca0f-4f0c-9438-43cc00509931" + ] }, "category": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/category", "type": "array", "title": "Category", "description": "The data (category/categories) the data disclosed are referred to. Can be multiple", - "examples": [["E-mail address"]], + "examples": [ + [ + "E-mail address" + ] + ], "items": { "type": "string" } @@ -708,7 +828,9 @@ "type": "string", "title": "Purpose", "description": "In this schema the purpose is specified (i.e. a headline or purpose category).", - "examples": ["Marketing"] + "examples": [ + "Marketing" + ] }, "description": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items/anyOf/0/properties/description", @@ -720,7 +842,10 @@ ] } }, - "required": ["purpose", "description"] + "required": [ + "purpose", + "description" + ] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/purposes/items", @@ -763,7 +888,9 @@ "title": "Reference", "description": "This field refers to the reference in legal regulations (laws, orders, declaration etc.). The format is set to uppercase letters for the legal text followed by hyphened numbers and lowercase letters for the exact location.", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["GDPR-99-1-a"] + "examples": [ + "GDPR-99-1-a" + ] }, "description": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items/anyOf/0/properties/description", @@ -775,7 +902,9 @@ ] } }, - "required": ["reference"] + "required": [ + "reference" + ] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legalBases/items", @@ -813,10 +942,14 @@ "const": true } }, - "required": ["exists"] + "required": [ + "exists" + ] }, "then": { - "required": ["reasoning"] + "required": [ + "reasoning" + ] }, "properties": { "exists": { @@ -825,7 +958,10 @@ "title": "Exists", "description": "The legitimate interest only has to be stated if the processing is carried out in accordance with Art. 13 (1d). This field refers to the existence of such an interest.", "default": false, - "examples": [true, false] + "examples": [ + true, + false + ] }, "reasoning": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/legitimateInterests/items/anyOf/0/properties/reasoning", @@ -895,21 +1031,27 @@ "type": "string", "title": "Name", "description": "The name of the third party (recipient).", - "examples": ["Yellow Company AG"] + "examples": [ + "Yellow Company AG" + ] }, "division": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/division", "type": "string", "title": "Division", "description": "The division of the third party (recipient) for structuring controllers into smaller entities.", - "examples": ["Product line e-mobility"] + "examples": [ + "Product line e-mobility" + ] }, "address": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/address", "type": "string", "title": "Address", "description": "The address of the third party (recipient).", - "examples": ["Triana 123, 9999 Seville"] + "examples": [ + "Triana 123, 9999 Seville" + ] }, "country": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/country", @@ -919,7 +1061,9 @@ "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] + "examples": [ + "ES" + ] }, "domain": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/domain", @@ -927,7 +1071,9 @@ "title": "Domain", "description": "The domain of the third party (recipient) as a url starting with protocol.", "pattern": "^https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$", - "examples": ["https://yellowcompany.es"] + "examples": [ + "https://yellowcompany.es" + ] }, "representative": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative", @@ -947,7 +1093,9 @@ "type": "string", "title": "Name", "description": "The name of the representative of the third party (recipient).", - "examples": ["Jane Super"] + "examples": [ + "Jane Super" + ] }, "email": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/email", @@ -955,7 +1103,9 @@ "title": "Email", "description": "The email address of the representative of the third party (recipient).", "format": "email", - "examples": ["contact@yellowcompany.de"] + "examples": [ + "contact@yellowcompany.de" + ] }, "phone": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/0/properties/representative/properties/phone", @@ -963,7 +1113,9 @@ "title": "Phone", "description": "The phone number of the representative of the third party (recipient).", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 151 1234 9876"] + "examples": [ + "0049 151 1234 9876" + ] } } }, @@ -972,7 +1124,9 @@ "type": "string", "title": "Category", "description": "The category of the the recipient.", - "examples": ["Marketing content provider"] + "examples": [ + "Marketing content provider" + ] }, "url": { "type": "array", @@ -985,7 +1139,9 @@ } } }, - "required": ["category"] + "required": [ + "category" + ] }, { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items/anyOf/1", @@ -1001,10 +1157,14 @@ "type": "string", "title": "Category", "description": "This category has to be given, even if the controller is not mentioned explicitly.", - "examples": ["Responsible Statistical Institutes"] + "examples": [ + "Responsible Statistical Institutes" + ] } }, - "required": ["category"] + "required": [ + "category" + ] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/recipients/items", @@ -1032,7 +1192,9 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": ["SGB-100-42"], + "legalBasisConditional": [ + "SGB-100-42" + ], "aggregationFunction": "max" } ] @@ -1058,7 +1220,9 @@ "purposeConditional": [ "Data is stored until the end of the ordering process." ], - "legalBasisConditional": ["SGB-100-42"], + "legalBasisConditional": [ + "SGB-100-42" + ], "aggregationFunction": "max" } ], @@ -1098,7 +1262,9 @@ "type": "string", "title": "Description", "description": "The description why the data has to be stored..", - "examples": ["Creating backups."] + "examples": [ + "Creating backups." + ] }, "ttl": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items/anyOf/0/properties/ttl", @@ -1111,7 +1277,10 @@ ] } }, - "required": ["description", "ttl"] + "required": [ + "description", + "ttl" + ] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/temporal/items", @@ -1148,7 +1317,11 @@ "type": "array", "title": "LegalBasisConditional", "description": "If the storage is required by law, the respective one has to specified in here.", - "examples": [["SGB-100-42"]], + "examples": [ + [ + "SGB-100-42" + ] + ], "additionalItems": true, "items": { "anyOf": [ @@ -1156,7 +1329,9 @@ "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items/anyOf/0", "title": "First anyOf", "pattern": "^[A-Z]*([-]?[0-9]*|[a-z]*)*$", - "examples": ["SGB-100-42"] + "examples": [ + "SGB-100-42" + ] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items/anyOf/0/properties/legalBasisConditional/items", @@ -1169,11 +1344,20 @@ "title": "AggregationFunction", "description": "The aggregation function describes the calculation basis when specifying several time intervals. For example, if there is storage for 2 weeks for technical reasons (e.g. backup), but there is a legally longer retention period, the maximum aggregation function (max) would be selected (standard case). Aggregation functions available: min, max, sum, avg", "default": "max", - "enum": ["min", "max", "sum", "avg"], - "examples": ["max"] + "enum": [ + "min", + "max", + "sum", + "avg" + ], + "examples": [ + "max" + ] } }, - "required": ["aggregationFunction"] + "required": [ + "aggregationFunction" + ] } ], "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/storage/items", @@ -1206,7 +1390,10 @@ "title": "LegalRequirement", "description": "Is there a legal requirement to collect these data?", "default": false, - "examples": [false, true] + "examples": [ + false, + true + ] }, "contractualRegulation": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/contractualRegulation", @@ -1214,7 +1401,10 @@ "title": "ContractualRegulation", "description": "Is there a contractual regulation to collect these data?", "default": false, - "examples": [false, true] + "examples": [ + false, + true + ] }, "obligationToProvide": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/obligationToProvide", @@ -1222,7 +1412,10 @@ "title": "ObligationToProvide", "description": "Is there an obligation for the data subject to provide these data?", "default": false, - "examples": [false, true] + "examples": [ + false, + true + ] }, "consequences": { "$id": "#/properties/dataDisclosed/items/anyOf/0/properties/nonDisclosure/properties/consequences", @@ -1316,7 +1509,9 @@ "minLength": 2, "maxLength": 2, "pattern": "^[A-Z][A-Z]$", - "examples": ["ES"] + "examples": [ + "ES" + ] }, "adequacyDecision": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision", @@ -1334,10 +1529,14 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description"] + "required": [ + "description" + ] }, "properties": { "available": { @@ -1346,7 +1545,10 @@ "title": "Available", "description": "Adequacy decision by the European commission exists?", "default": false, - "examples": [true, false] + "examples": [ + true, + false + ] }, "description": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/adequacyDecision/properties/description", @@ -1376,10 +1578,14 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description"] + "required": [ + "description" + ] }, "properties": { "available": { @@ -1388,7 +1594,10 @@ "title": "Available", "description": "Do suitable guarantees according to Art. 45 exist?", "default": false, - "examples": [true, false] + "examples": [ + true, + false + ] }, "description": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/appropriateGuarantees/properties/description", @@ -1418,10 +1627,14 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description"] + "required": [ + "description" + ] }, "properties": { "available": { @@ -1430,14 +1643,19 @@ "title": "Available", "description": "Presence of enforceable rights and effective remedies?", "default": false, - "examples": [true, false] + "examples": [ + true, + false + ] }, "description": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/presenceOfEnforceableRightsAndEffectiveRemedies/properties/description", "type": "string", "title": "Description", "description": "Description of enforceable rights and effective remedies.", - "examples": ["These rights are given because of..."] + "examples": [ + "These rights are given because of..." + ] } } }, @@ -1458,10 +1676,14 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description"] + "required": [ + "description" + ] }, "properties": { "available": { @@ -1470,7 +1692,10 @@ "title": "Available", "description": "Does a standard data protection clause exist?", "default": false, - "examples": [true, false] + "examples": [ + true, + false + ] }, "description": { "$id": "#/properties/thirdCountryTransfers/items/anyOf/0/properties/standardDataProtectionClause/properties/description", @@ -1499,9 +1724,14 @@ { "available": true, "description": "Data access is possible through...", - "url": ["https://green-bikes.de/access"], + "url": [ + "https://green-bikes.de/access" + ], "email": "access@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], "administrativeFee": { "amount": 0, "currency": "EUR" @@ -1509,7 +1739,9 @@ "dataFormat": "json" } ], - "required": ["available"], + "required": [ + "available" + ], "properties": { "available": { "$id": "#/properties/accessAndDataPortability/properties/available", @@ -1517,7 +1749,9 @@ "title": "Available", "description": "The information is subject to the requirements of Art. 20 (right to data portability) GDPR.", "default": true, - "examples": [true] + "examples": [ + true + ] }, "description": { "$id": "#/properties/accessAndDataPortability/properties/description", @@ -1535,7 +1769,11 @@ "title": "Url", "description": "URL to relevant resources such as access portals.", "format": "uri-reference", - "examples": [["https://green-bikes.de/access"]], + "examples": [ + [ + "https://green-bikes.de/access" + ] + ], "uniqueItems": true, "items": { "type": "string", @@ -1549,21 +1787,31 @@ "title": "Email", "description": "Contact email address", "format": "email", - "examples": ["access@greencompany.de"] + "examples": [ + "access@greencompany.de" + ] }, "identificationEvidences": { "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", "description": "ID evidences", - "examples": [["ID card copy", "Email verification"]], + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] + "examples": [ + "ID card copy", + "Email verification" + ] } ], "$id": "#/properties/accessAndDataPortability/properties/identificationEvidences/items", @@ -1588,7 +1836,9 @@ "title": "Amount", "description": "The amount of money to be paid for a copy.", "default": 0, - "examples": [0] + "examples": [ + 0 + ] }, "currency": { "$id": "#/properties/accessAndDataPortability/properties/administrativeFee/properties/currency", @@ -1598,24 +1848,39 @@ "default": "EUR", "minLength": 3, "maxLength": 3, - "examples": ["EUR"] + "examples": [ + "EUR" + ] } }, - "required": ["amount", "currency"] + "required": [ + "amount", + "currency" + ] }, "dataFormats": { "$id": "#/properties/accessAndDataPortability/properties/dataFormats", "type": "array", "title": "DataFormat", "description": "An explanation about the data format(s) the data is provided in.", - "default": ["json"], - "examples": [["json", "xml"]], + "default": [ + "json" + ], + "examples": [ + [ + "json", + "xml" + ] + ], "items": { "anyOf": [ { "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items/anyOf/0", "title": "First anyOf", - "examples": ["json", "xml"] + "examples": [ + "json", + "xml" + ] } ], "$id": "#/properties/accessAndDataPortability/properties/dataFormats/items", @@ -1637,7 +1902,9 @@ "sources": [ { "description": "This information could be retrieved from...", - "url": ["https://blueCompany.org"], + "url": [ + "https://blueCompany.org" + ], "publiclyAvailable": false, "origin": "received" } @@ -1658,7 +1925,9 @@ "sources": [ { "description": "This information could be retrieved from...", - "url": ["https://blueCompany.org"], + "url": [ + "https://blueCompany.org" + ], "publiclyAvailable": false, "origin": "received" } @@ -1671,14 +1940,18 @@ "type": "string", "title": "_id", "description": "This refers to an locally unique ID in an arbitrary but deterministic format.", - "examples": ["f1423cc00509931"] + "examples": [ + "f1423cc00509931" + ] }, "dataCategory": { "$id": "#/properties/sources/items/anyOf/0/properties/dataCategory", "type": "string", "title": "DataCategory", "description": "The category the data refer to.", - "examples": ["Creditworthiness"] + "examples": [ + "Creditworthiness" + ] }, "sources": { "$id": "#/properties/sources/items/anyOf/0/properties/sources", @@ -1689,7 +1962,9 @@ [ { "description": "This information could be retrieved from...", - "url": ["https://blueCompany.org"], + "url": [ + "https://blueCompany.org" + ], "publiclyAvailable": false, "origin": "received" } @@ -1704,7 +1979,9 @@ "examples": [ { "description": "This information could be retrieved from...", - "url": ["https://blueCompany.org"], + "url": [ + "https://blueCompany.org" + ], "publiclyAvailable": false, "origin": "received" } @@ -1725,11 +2002,15 @@ "title": "Url", "description": "URL (reference) where the data is taken from.", "format": "uri-reference", - "examples": ["https://blueCompany.org"], + "examples": [ + "https://blueCompany.org" + ], "items": { "type": "string", "format": "uri-reference", - "example": ["https://blueCompany.org"] + "example": [ + "https://blueCompany.org" + ] } }, "publiclyAvailable": { @@ -1738,15 +2019,24 @@ "title": "PubliclyAvailable", "description": "Are these data publicly available?", "default": false, - "examples": [false, true] + "examples": [ + false, + true + ] }, "origin": { "$id": "#/properties/sources/items/anyOf/0/properties/sources/items/anyOf/0/properties/origin", "type": "string", "title": "Origin", "description": "How was the data obtained?", - "enum": ["received", "observed", "inferred"], - "examples": ["received"] + "enum": [ + "received", + "observed", + "inferred" + ], + "examples": [ + "received" + ] } }, "required": [ @@ -1762,7 +2052,11 @@ } } }, - "required": ["_id", "dataCategory", "sources"] + "required": [ + "_id", + "dataCategory", + "sources" + ] } ], "$id": "#/properties/sources/items", @@ -1778,9 +2072,14 @@ { "available": true, "description": "For the right to information please use this contact form and...", - "url": ["https://greencompany.org/rightToInformation"], + "url": [ + "https://greencompany.org/rightToInformation" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] } ], "if": { @@ -1789,10 +2088,14 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description"] + "required": [ + "description" + ] }, "properties": { "available": { @@ -1801,7 +2104,9 @@ "title": "Available", "description": "Possibility available?", "default": true, - "examples": [true] + "examples": [ + true + ] }, "description": { "$id": "#/properties/rightToInformation/properties/description", @@ -1818,7 +2123,11 @@ "title": "Url", "description": "URL to an online portal.", "format": "uri-reference", - "examples": [["https://greencompany.org/rightToInformation"]], + "examples": [ + [ + "https://greencompany.org/rightToInformation" + ] + ], "minItems": 1, "items": { "type": "string", @@ -1831,20 +2140,30 @@ "type": "string", "title": "Email", "format": "email", - "examples": ["contact@greencompany.de"] + "examples": [ + "contact@greencompany.de" + ] }, "identificationEvidences": { "$id": "#/properties/rightToInformation/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToInformation/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] + "examples": [ + "ID card copy", + "Email verification" + ] } ], "$id": "#/properties/rightToInformation/properties/identificationEvidences/items", @@ -1862,9 +2181,14 @@ { "available": true, "description": "For the right to rectification please use this contact form and...", - "url": ["https://greencompany.org/rights"], + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"] + "identificationEvidences": [ + "ID card copy", + "Email verification" + ] } ], "if": { @@ -1873,10 +2197,14 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description"] + "required": [ + "description" + ] }, "properties": { "available": { @@ -1885,7 +2213,10 @@ "title": "Available", "description": "Possibility available?", "default": true, - "examples": [true, false] + "examples": [ + true, + false + ] }, "description": { "$id": "#/properties/rightToRectificationOrDeletion/properties/description", @@ -1900,7 +2231,11 @@ "type": "array", "title": "Url", "format": "uri-reference", - "examples": [["https://greencompany.org/rights"]], + "examples": [ + [ + "https://greencompany.org/rights" + ] + ], "minItems": 1, "uniqueItems": true, "items": { @@ -1914,20 +2249,30 @@ "type": "string", "title": "Email", "format": "email", - "examples": ["contact@greencompany.de"] + "examples": [ + "contact@greencompany.de" + ] }, "identificationEvidences": { "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] + "examples": [ + "ID card copy", + "Email verification" + ] } ], "$id": "#/properties/rightToRectificationOrDeletion/properties/identificationEvidences/items", @@ -1945,9 +2290,13 @@ { "available": true, "description": "Data portability is only possible when...", - "url": ["https://greencompany.org/rights"], + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy"] + "identificationEvidences": [ + "ID card copy" + ] } ], "if": { @@ -1956,10 +2305,14 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description"] + "required": [ + "description" + ] }, "properties": { "available": { @@ -1967,20 +2320,29 @@ "type": "boolean", "title": "Available", "default": true, - "examples": [false, true] + "examples": [ + false, + true + ] }, "description": { "$id": "#/properties/rightToDataPortability/properties/description", "type": "string", "title": "Description", - "examples": ["Data portability is only possible when..."] + "examples": [ + "Data portability is only possible when..." + ] }, "url": { "$id": "#/properties/rightToDataPortability/properties/url", "type": "array", "title": "Url", "format": "uri-reference", - "examples": [["https://greencompany.org/rights"]], + "examples": [ + [ + "https://greencompany.org/rights" + ] + ], "minItems": 1, "uniqueItems": true, "items": { @@ -1994,20 +2356,28 @@ "type": "string", "title": "Email", "format": "email", - "examples": ["contact@greencompany.de"] + "examples": [ + "contact@greencompany.de" + ] }, "identificationEvidences": { "$id": "#/properties/rightToDataPortability/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [["ID card copy"]], + "examples": [ + [ + "ID card copy" + ] + ], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": ["ID card copy"] + "examples": [ + "ID card copy" + ] } ], "$id": "#/properties/rightToDataPortability/properties/identificationEvidences/items", @@ -2025,9 +2395,13 @@ { "available": true, "description": "For the right to withdraw consent please use this contact form and...", - "url": ["https://greencompany.org/rights"], + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["Email verification"] + "identificationEvidences": [ + "Email verification" + ] } ], "if": { @@ -2036,10 +2410,14 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description"] + "required": [ + "description" + ] }, "properties": { "available": { @@ -2047,7 +2425,10 @@ "type": "boolean", "title": "Available", "default": true, - "examples": [true, false] + "examples": [ + true, + false + ] }, "description": { "$id": "#/properties/rightToWithdrawConsent/properties/description", @@ -2062,7 +2443,11 @@ "type": "array", "title": "Url", "format": "uri-reference", - "examples": [["https://greencompany.org/rights"]], + "examples": [ + [ + "https://greencompany.org/rights" + ] + ], "minItems": 1, "uniqueItems": true, "items": { @@ -2076,20 +2461,28 @@ "type": "string", "title": "Email", "format": "email", - "examples": ["contact@greencompany.de"] + "examples": [ + "contact@greencompany.de" + ] }, "identificationEvidences": { "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [["Email verification"]], + "examples": [ + [ + "Email verification" + ] + ], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": ["Email verification"] + "examples": [ + "Email verification" + ] } ], "$id": "#/properties/rightToWithdrawConsent/properties/identificationEvidences/items", @@ -2107,9 +2500,14 @@ { "available": true, "description": "For the right to complain please use this contact form and...", - "url": ["https://greencompany.org/rights"], + "url": [ + "https://greencompany.org/rights" + ], "email": "contact@greencompany.de", - "identificationEvidences": ["ID card copy", "Email verification"], + "identificationEvidences": [ + "ID card copy", + "Email verification" + ], "supervisoryAuthority": { "name": "Commissioner for Data Protection", "address": "Friedrichstrasse 219, 10969 Berlin", @@ -2125,10 +2523,15 @@ "const": true } }, - "required": ["available"] + "required": [ + "available" + ] }, "then": { - "required": ["description", "supervisoryAuthority"] + "required": [ + "description", + "supervisoryAuthority" + ] }, "properties": { "available": { @@ -2137,7 +2540,10 @@ "title": "Available", "description": "Is this right available?", "default": true, - "examples": [true, false] + "examples": [ + true, + false + ] }, "description": { "$id": "#/properties/rightToComplain/properties/description", @@ -2152,7 +2558,11 @@ "type": "array", "title": "Url", "format": "uri-reference", - "examples": [["https://greencompany.org/rights"]], + "examples": [ + [ + "https://greencompany.org/rights" + ] + ], "minItems": 1, "uniqueItems": true, "items": { @@ -2166,20 +2576,30 @@ "type": "string", "title": "Email", "format": "email", - "examples": ["contact@greencompany.de"] + "examples": [ + "contact@greencompany.de" + ] }, "identificationEvidences": { "$id": "#/properties/rightToComplain/properties/identificationEvidences", "type": "array", "title": "IdentificationEvidences", - "examples": [["ID card copy", "Email verification"]], + "examples": [ + [ + "ID card copy", + "Email verification" + ] + ], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/rightToComplain/properties/identificationEvidences/items/anyOf/0", "title": "First anyOf", - "examples": ["ID card copy", "Email verification"] + "examples": [ + "ID card copy", + "Email verification" + ] } ], "$id": "#/properties/rightToComplain/properties/identificationEvidences/items", @@ -2206,14 +2626,18 @@ "type": "string", "title": "Name", "description": "Name of the supervisory authority.", - "examples": ["Commissioner for Data Protection"] + "examples": [ + "Commissioner for Data Protection" + ] }, "address": { "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/address", "type": "string", "title": "Address", "description": "Adress of the supervisory authority.", - "examples": ["Friedrichstrasse 219, 10969 Berlin"] + "examples": [ + "Friedrichstrasse 219, 10969 Berlin" + ] }, "country": { "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/country", @@ -2222,7 +2646,9 @@ "description": "Country of the supervisory authority.", "minLength": 2, "maxLength": 2, - "examples": ["DE"] + "examples": [ + "DE" + ] }, "email": { "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/email", @@ -2230,7 +2656,9 @@ "title": "Email", "description": "Email adress of the supervisory authority.", "format": "email", - "examples": ["mailbox@privacy-berlin.de"] + "examples": [ + "mailbox@privacy-berlin.de" + ] }, "phone": { "$id": "#/properties/rightToComplain/properties/supervisoryAuthority/properties/phone", @@ -2238,10 +2666,14 @@ "title": "Phone", "description": "Phone number of the supervisory authority.", "pattern": "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$", - "examples": ["0049 444 222 111"] + "examples": [ + "0049 444 222 111" + ] } }, - "required": ["name"] + "required": [ + "name" + ] } } }, @@ -2263,10 +2695,15 @@ "const": true } }, - "required": ["inUse"] + "required": [ + "inUse" + ] }, "then": { - "required": ["logicInvolved", "scopeAndIntendedEffects"] + "required": [ + "logicInvolved", + "scopeAndIntendedEffects" + ] }, "properties": { "inUse": { @@ -2275,21 +2712,28 @@ "title": "InUse", "description": "Is automated decision making in use?", "default": true, - "examples": [true, false] + "examples": [ + true, + false + ] }, "logicInvolved": { "$id": "#/properties/automatedDecisionMaking/properties/logicInvolved", "type": "string", "title": "LogicInvolved", "description": "An explanation about the logic involved to automated decision making.", - "examples": ["The personal data are processed as follows..."] + "examples": [ + "The personal data are processed as follows..." + ] }, "scopeAndIntendedEffects": { "$id": "#/properties/automatedDecisionMaking/properties/scopeAndIntendedEffects", "type": "string", "title": "ScopeAndIntendedEffects", "description": "Scope and intended effects of such processing for the data subject.", - "examples": ["From processing follows..."] + "examples": [ + "From processing follows..." + ] } } }, @@ -2302,7 +2746,10 @@ [ { "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } @@ -2317,7 +2764,10 @@ "examples": [ { "description": "Due to technical requirements...", - "affectedDataCategories": ["Email adress", "Credit score"], + "affectedDataCategories": [ + "Email adress", + "Credit score" + ], "plannedDateOfChange": "2020-08-20", "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } @@ -2328,21 +2778,31 @@ "type": "string", "title": "Description", "description": "Description of the change of purpose.", - "examples": ["Due to technical requirements..."] + "examples": [ + "Due to technical requirements..." + ] }, "affectedDataCategories": { "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories", "type": "array", "title": "AffectedDataCategories", "description": "Data categories that are affected from the change of purpose.", - "examples": [["Email adress", "Credit score"]], + "examples": [ + [ + "Email adress", + "Credit score" + ] + ], "additionalItems": true, "items": { "anyOf": [ { "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items/anyOf/0", "title": "First anyOf", - "examples": ["Email adress", "Credit score"] + "examples": [ + "Email adress", + "Credit score" + ] } ], "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/affectedDataCategories/items", @@ -2355,14 +2815,18 @@ "title": "PlannedDateOfChange", "description": "Specify the planned date to the changes as ISO 8601 string.", "pattern": "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$", - "examples": ["2020-08-20"] + "examples": [ + "2020-08-20" + ] }, "urlOfNewVersion": { "$id": "#/properties/changesOfPurpose/items/anyOf/0/properties/urlOfNewVersion", "type": "string", "title": "UrlOfNewVersion", "description": "URL points to a document of the same as this one. That creates a chain of information requirements for seamless recognition of transparency information even over a longer period of time.", - "examples": ["https://greencomp.de/tilt/2"] + "examples": [ + "https://greencomp.de/tilt/2" + ] } } } @@ -2388,4 +2852,4 @@ "automatedDecisionMaking", "changesOfPurpose" ] -} +} \ No newline at end of file From a5d9a628c6f4d95c092059dc07a011547fc79ea2 Mon Sep 17 00:00:00 2001 From: tomijange Date: Thu, 11 May 2023 15:40:53 +0000 Subject: [PATCH 78/80] Overwritten by Github Actions --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index e8fc85c..d8ef6ac 100644 --- a/docs/index.html +++ b/docs/index.html @@ -975,4 +975,4 @@ "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } ] - \ No newline at end of file + \ No newline at end of file From d0cd8ba32ba6240f3a65d2dfc715a60b9279cc5f Mon Sep 17 00:00:00 2001 From: Thomas Janke Date: Thu, 11 May 2023 17:41:54 +0200 Subject: [PATCH 79/80] Update main.yaml --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 82aa76c..18502ab 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -8,7 +8,7 @@ on: pull_request: push: branches: - - 15-github-action-ci-pipeline-for-merging-the-specification # !! Update this once we merge to master !! + - v2 # !! Update this once we merge to master !! # Allows you to run this workflow manually from the Actions tab workflow_dispatch: From 2a54277f78cdd507d337988c0d3295b3be568a70 Mon Sep 17 00:00:00 2001 From: tomijange Date: Thu, 11 May 2023 15:42:25 +0000 Subject: [PATCH 80/80] Overwritten by Github Actions --- docs/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index d8ef6ac..9ca119e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -975,4 +975,4 @@ "urlOfNewVersion": "https://greencomp.de/privacypolicy/2" } ] - \ No newline at end of file + \ No newline at end of file