-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopenapi.json
1 lines (1 loc) · 19.5 KB
/
openapi.json
1
{"openapi":"3.1.0","info":{"title":"Data Product Manager - REST API","version":"3.1.1"},"paths":{"/dataProducts":{"get":{"tags":["Read"],"summary":"Get Data Products","description":"Retrieve all data products.","operationId":"get_data_products_dataProducts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetDataProductResponse"},"type":"array","title":"Response 200 Get Data Products Dataproducts Get"}}}},"204":{"description":"No Content"}}},"post":{"tags":["Create"],"summary":"Post Data Product","description":"Onboard single data product. Mappings file can be RML or YARRRML for batch data sources and MUST BE CARML for streaming data sources. Optional translation files (alignment files) must be XML. If no translation files are provided, semantic translation will not be used. If one of the translation files is not provided, the IDENTITY alignment will then be used for the associated process.","operationId":"post_data_product_dataProducts_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_post_data_product_dataProducts_post"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostDataProductResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Delete"],"summary":"Delete Data Products","description":"Delete all data products.","operationId":"delete_data_products_dataProducts_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDataProductResponse"}}}},"204":{"description":"No Content"}}}},"/dataProducts/{data_product_id}":{"get":{"tags":["Read"],"summary":"Get Data Product","description":"Retrieve data product by passing its ID.","operationId":"get_data_product_dataProducts__data_product_id__get","parameters":[{"name":"data_product_id","in":"path","required":true,"schema":{"type":"string","title":"Data Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDataProductResponse"}}}},"204":{"description":"No Content"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Delete"],"summary":"Delete Data Product","description":"Delete data product by passing its ID.","operationId":"delete_data_product_dataProducts__data_product_id__delete","parameters":[{"name":"data_product_id","in":"path","required":true,"schema":{"type":"string","title":"Data Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDataProductResponse"}}}},"204":{"description":"No Content"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BatchDataProductFreshness":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule"}},"type":"object","required":["enabled","schedule"],"title":"BatchDataProductFreshness","description":"Specific model for storing the freshness details of a batch data product."},"Body_post_data_product_dataProducts_post":{"properties":{"data_source":{"$ref":"#/components/schemas/DataSource"},"mappings_file":{"type":"string","format":"binary","title":"Mappings File"},"translation_source_to_central_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Translation Source To Central File"},"translation_central_to_target_file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"Translation Central To Target File"}},"type":"object","required":["data_source","mappings_file"],"title":"Body_post_data_product_dataProducts_post"},"DataProductDetails":{"properties":{"output_kafka_topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Kafka Topic"},"pre_translation_output_kafka_topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pre Translation Output Kafka Topic"},"post_translation_output_kafka_topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Post Translation Output Kafka Topic"},"db_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Url"},"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"},"freshness":{"anyOf":[{"$ref":"#/components/schemas/BatchDataProductFreshness"},{"type":"null"}]},"metadata":{"anyOf":[{"$ref":"#/components/schemas/StreamingDataProductMetadata"},{"type":"null"}]},"settings":{"anyOf":[{"$ref":"#/components/schemas/StreamingDataProductSettings"},{"type":"null"}]},"status":{"anyOf":[{"$ref":"#/components/schemas/StreamingDataProductStatus"},{"type":"null"}]}},"type":"object","required":["output_kafka_topic","pre_translation_output_kafka_topic","post_translation_output_kafka_topic","db_url","file_path","freshness","metadata","settings","status"],"title":"DataProductDetails","description":"Specific model for storing the details of a data product."},"DataProductTranslation":{"properties":{"defined":{"type":"string","title":"Defined"},"source_to_central":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source To Central"},"central_to_target":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Central To Target"},"settings":{"anyOf":[{"$ref":"#/components/schemas/DataProductTranslationSettings"},{"type":"null"}]}},"type":"object","required":["defined","source_to_central","central_to_target","settings"],"title":"DataProductTranslation","description":"Specific model for storing the translation information of a data product."},"DataProductTranslationSettings":{"properties":{"chanType":{"type":"string","title":"Chantype"},"source":{"type":"string","title":"Source"},"inpAlignmentName":{"type":"string","title":"Inpalignmentname"},"inpAlignmentVersion":{"type":"string","title":"Inpalignmentversion"},"outAlignmentName":{"type":"string","title":"Outalignmentname"},"outAlignmentVersion":{"type":"string","title":"Outalignmentversion"},"sink":{"type":"string","title":"Sink"},"parallelism":{"type":"integer","title":"Parallelism"},"channelId":{"type":"string","title":"Channelid"},"descId":{"type":"string","title":"Descid"}},"type":"object","required":["chanType","source","inpAlignmentName","inpAlignmentVersion","outAlignmentName","outAlignmentVersion","sink","parallelism","channelId","descId"],"title":"DataProductTranslationSettings","description":"Specific model for storing the translation settings of a data product."},"DataSource":{"properties":{"details":{"oneOf":[{"$ref":"#/components/schemas/RelationalDatabaseDataSource"},{"$ref":"#/components/schemas/FileDataSource"},{"$ref":"#/components/schemas/KafkaDataSource"},{"$ref":"#/components/schemas/MqttDataSource"}],"title":"Details","description":"Data source type.","discriminator":{"propertyName":"data_source_type","mapping":{"BATCH_FILE":"#/components/schemas/FileDataSource","BATCH_RELATIONAL_DATABASE":"#/components/schemas/RelationalDatabaseDataSource","STREAMING_KAFKA":"#/components/schemas/KafkaDataSource","STREAMING_MQTT":"#/components/schemas/MqttDataSource"}}}},"type":"object","required":["details"],"title":"DataSource","description":"Base model for any data source."},"DeleteDataProductResponse":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"DeleteDataProductResponse","description":"Specific model that is returned on a successful deletion of one or all data products."},"FileDataSource":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the batch data source."},"description":{"type":"string","title":"Description","description":"Description of the batch data source."},"owner":{"type":"string","title":"Owner","description":"URI that represents the person/entity that owns the data product."},"glossary_terms":{"items":{"type":"string"},"type":"array","title":"Glossary Terms","description":"URIs that represent terms defined in the business glossary."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags that identify the batch data source."},"freshness":{"type":"string","title":"Freshness","description":"Only supported for data sources of batch type. It determines how frequently the Data Fabric collects raw data from the target data source."},"data_source_type":{"type":"string","enum":["BATCH_FILE"],"const":"BATCH_FILE","title":"Data Source Type"},"file_path":{"type":"string","title":"File Path","description":"Location (path) of source file."}},"type":"object","required":["data_source_type","file_path"],"title":"FileDataSource","description":"Specific model for a file data source (batch data source)."},"GetDataProductResponse":{"properties":{"_id":{"type":"string","title":" Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"owner":{"type":"string","title":"Owner"},"glossary_terms":{"items":{"type":"string"},"type":"array","title":"Glossary Terms"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"data_source_type":{"type":"string","title":"Data Source Type"},"translation":{"$ref":"#/components/schemas/DataProductTranslation"},"details":{"$ref":"#/components/schemas/DataProductDetails"},"creationTimestamp":{"type":"string","title":"Creationtimestamp"}},"type":"object","required":["_id","name","description","owner","glossary_terms","tags","data_source_type","translation","details","creationTimestamp"],"title":"GetDataProductResponse","description":"Specific model that is returned on a successful retrieval of information of data products.\nThis model is also returned when successfully creating a new data product."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"KafkaDataSource":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the streaming data source."},"description":{"type":"string","title":"Description","description":"Description of the streaming data source."},"owner":{"type":"string","title":"Owner","description":"URI that represents the person/entity that owns the data product."},"glossary_terms":{"items":{"type":"string"},"type":"array","title":"Glossary Terms","description":"URIs that represent terms defined in the business glossary."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags that identify the streaming data source."},"input_format":{"anyOf":[{"type":"string","enum":["JSON"],"const":"JSON"},{"type":"string","enum":["XML"],"const":"XML"},{"type":"string","enum":["CSV"],"const":"CSV"}],"title":"Input Format","description":"Input data format of the streaming data source."},"input_topic":{"type":"string","title":"Input Topic","description":"Name of the input topic."},"data_source_type":{"type":"string","enum":["STREAMING_KAFKA"],"const":"STREAMING_KAFKA","title":"Data Source Type"},"host":{"type":"string","title":"Host","description":"Hostname, FQDN or IP address where the Kafka broker is reachable."},"port":{"type":"integer","title":"Port","description":"Port number where the Kafka broker is reachable."},"group_id":{"type":"string","title":"Group Id","description":"Kafka group ID."}},"type":"object","required":["input_format","input_topic","data_source_type","host","port"],"title":"KafkaDataSource","description":"Specific model for a Kafka data source (streaming data source)."},"MqttDataSource":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the streaming data source."},"description":{"type":"string","title":"Description","description":"Description of the streaming data source."},"owner":{"type":"string","title":"Owner","description":"URI that represents the person/entity that owns the data product."},"glossary_terms":{"items":{"type":"string"},"type":"array","title":"Glossary Terms","description":"URIs that represent terms defined in the business glossary."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags that identify the streaming data source."},"input_format":{"anyOf":[{"type":"string","enum":["JSON"],"const":"JSON"},{"type":"string","enum":["XML"],"const":"XML"},{"type":"string","enum":["CSV"],"const":"CSV"}],"title":"Input Format","description":"Input data format of the streaming data source."},"input_topic":{"type":"string","title":"Input Topic","description":"Name of the input topic."},"data_source_type":{"type":"string","enum":["STREAMING_MQTT"],"const":"STREAMING_MQTT","title":"Data Source Type"},"protocol":{"type":"string","title":"Protocol","description":"Protocol name used by the MQTT broker."},"host":{"type":"string","title":"Host","description":"Hostname, FQDN or IP address where the MQTT broker is reachable."},"port":{"type":"integer","title":"Port","description":"Port number where the MQTT broker is reachable."},"client_id":{"type":"string","title":"Client Id","description":"Client ID to use with the MQTT broker."},"user":{"type":"string","title":"User","description":"Username to use for authentication with the MQTT broker."},"password":{"type":"string","title":"Password","description":"Password to use for authentication with the MQTT broker."}},"type":"object","required":["input_format","input_topic","data_source_type","protocol","host","port"],"title":"MqttDataSource","description":"Specific model for a MQTT data source (streaming data source)."},"PostDataProductResponse":{"properties":{"message":{"type":"string","title":"Message"},"data_product":{"$ref":"#/components/schemas/GetDataProductResponse"}},"type":"object","required":["message","data_product"],"title":"PostDataProductResponse","description":"Specific model that is returned on a successful creation of a data product."},"RelationalDatabaseDataSource":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the batch data source."},"description":{"type":"string","title":"Description","description":"Description of the batch data source."},"owner":{"type":"string","title":"Owner","description":"URI that represents the person/entity that owns the data product."},"glossary_terms":{"items":{"type":"string"},"type":"array","title":"Glossary Terms","description":"URIs that represent terms defined in the business glossary."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags that identify the batch data source."},"freshness":{"type":"string","title":"Freshness","description":"Only supported for data sources of batch type. It determines how frequently the Data Fabric collects raw data from the target data source."},"data_source_type":{"type":"string","enum":["BATCH_RELATIONAL_DATABASE"],"const":"BATCH_RELATIONAL_DATABASE","title":"Data Source Type"},"db_url":{"type":"string","title":"Db Url","description":"URL of source relational database."}},"type":"object","required":["data_source_type","db_url"],"title":"RelationalDatabaseDataSource","description":"Specific model for a relational database data source (batch data source)."},"StreamingDataProductKafkaBrokerSettings":{"properties":{"host":{"type":"string","title":"Host"},"port":{"type":"integer","title":"Port"},"groupId":{"type":"string","title":"Groupid"}},"type":"object","required":["host","port","groupId"],"title":"StreamingDataProductKafkaBrokerSettings","description":"Specific model for storing Kafka broker settings of a streaming data product."},"StreamingDataProductMappingMetadata":{"properties":{"name":{"type":"string","title":"Name"},"author":{"type":"string","title":"Author"},"inputFormat":{"type":"string","title":"Inputformat"},"outputFormat":{"type":"string","title":"Outputformat"},"rml":{"type":"string","title":"Rml"}},"type":"object","required":["name","author","inputFormat","outputFormat","rml"],"title":"StreamingDataProductMappingMetadata","description":"Specific model for storing mapping metadata details of a streaming data product."},"StreamingDataProductMetadata":{"properties":{"name":{"type":"string","title":"Name"},"author":{"type":"string","title":"Author"},"description":{"type":"string","title":"Description"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"mapping":{"$ref":"#/components/schemas/StreamingDataProductMappingMetadata"}},"type":"object","required":["name","author","description","tags","mapping"],"title":"StreamingDataProductMetadata","description":"Specific model for storing metadata details of a streaming data product."},"StreamingDataProductMqttBrokerSettings":{"properties":{"protocol":{"type":"string","title":"Protocol"},"host":{"type":"string","title":"Host"},"port":{"type":"integer","title":"Port"},"clientId":{"type":"string","title":"Clientid"},"user":{"type":"string","title":"User"},"password":{"type":"string","title":"Password"}},"type":"object","required":["protocol","host","port","clientId","user","password"],"title":"StreamingDataProductMqttBrokerSettings","description":"Specific model for storing MQTT broker settings of a streaming data product."},"StreamingDataProductSettings":{"properties":{"channelId":{"type":"string","title":"Channelid"},"inputTopicSettings":{"$ref":"#/components/schemas/StreamingDataProductTopicSettings"},"outputTopicSettings":{"$ref":"#/components/schemas/StreamingDataProductTopicSettings"},"monitorInputTopicSettings":{"$ref":"#/components/schemas/StreamingDataProductTopicSettings"},"monitorOutputTopicSettings":{"$ref":"#/components/schemas/StreamingDataProductTopicSettings"},"errorTopicSettings":{"$ref":"#/components/schemas/StreamingDataProductTopicSettings"}},"type":"object","required":["channelId","inputTopicSettings","outputTopicSettings","monitorInputTopicSettings","monitorOutputTopicSettings","errorTopicSettings"],"title":"StreamingDataProductSettings","description":"Specific model for storing settings of a streaming data product."},"StreamingDataProductStatus":{"properties":{"isStopped":{"type":"boolean","title":"Isstopped"},"inputTopicEnabled":{"type":"boolean","title":"Inputtopicenabled"},"outputTopicEnabled":{"type":"boolean","title":"Outputtopicenabled"},"inputMonitorTopicEnabled":{"type":"boolean","title":"Inputmonitortopicenabled"},"outputMonitorTopicEnabled":{"type":"boolean","title":"Outputmonitortopicenabled"},"errorTopicEnabled":{"type":"boolean","title":"Errortopicenabled"}},"type":"object","required":["isStopped","inputTopicEnabled","outputTopicEnabled","inputMonitorTopicEnabled","outputMonitorTopicEnabled","errorTopicEnabled"],"title":"StreamingDataProductStatus","description":"Specific model for storing the status of a streaming data product."},"StreamingDataProductTopicSettings":{"properties":{"topic":{"type":"string","title":"Topic"},"brokerType":{"type":"string","title":"Brokertype"},"kafkaSettings":{"anyOf":[{"$ref":"#/components/schemas/StreamingDataProductKafkaBrokerSettings"},{"type":"null"}]},"mqttSettings":{"anyOf":[{"$ref":"#/components/schemas/StreamingDataProductMqttBrokerSettings"},{"type":"null"}]}},"type":"object","required":["topic","brokerType","kafkaSettings","mqttSettings"],"title":"StreamingDataProductTopicSettings","description":"Specific model for storing topic settings of a streaming data product."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}