diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ed60fe2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.pyc
+output.docx
+output.pdf
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c571aa5
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,28 @@
+License: 
+========
+The MIT License (MIT)
+http://opensource.org/licenses/MIT
+
+Copyright (c) 2014 - 2022 APIMATIC Limited
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Trade Mark:
+==========
+APIMATIC is a trade mark for APIMATIC Limited
\ No newline at end of file
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..64aa22e
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,2 @@
+include LICENSE
+include README.md
diff --git a/README.md b/README.md
index 62e6674..2661d95 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@ Python and PIP executables should be defined in your PATH. Open command prompt a
 
 ## Installation
 
-The following section explains how to use the firstlanguageapi library in a new project.
+The following section explains how to use the firstlanguage_python library in a new project.
 
 ### 1. Open Project in an IDE
 
@@ -38,13 +38,13 @@ Click on `Open` in PyCharm to browse to your generated SDK directory and then cl
 
 The project files will be displayed in the side bar as follows:
 
-![Open project in PyCharm - Step 3](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&step=openProject1)
+![Open project in PyCharm - Step 3](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&step=openProject1)
 
 ### 2. Add a new Test Project
 
 Create a new directory by right clicking on the solution name as shown below:
 
-![Add a new project in PyCharm - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&step=createDirectory)
+![Add a new project in PyCharm - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&step=createDirectory)
 
 Name the directory as "test".
 
@@ -52,19 +52,19 @@ Name the directory as "test".
 
 Add a python file to this project.
 
-![Add a new project in PyCharm - Step 3](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&step=createFile)
+![Add a new project in PyCharm - Step 3](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&step=createFile)
 
 Name it "testSDK".
 
-![Add a new project in PyCharm - Step 4](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&step=nameFile)
+![Add a new project in PyCharm - Step 4](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&step=nameFile)
 
 In your python file you will be required to import the generated python library using the following code lines
 
 ```python
-from firstlanguageapi.firstlanguageapi_client import FirstlanguageapiClient
+from firstlanguage_python.firstlanguage_python_client import FirstlanguageapiClient
 ```
 
-![Add a new project in PyCharm - Step 5](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&libraryName=firstlanguageapi.firstlanguageapi_client&className=FirstlanguageapiClient&step=projectFiles)
+![Add a new project in PyCharm - Step 5](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&libraryName=firstlanguage_python.firstlanguage_python_client&className=FirstlanguageapiClient&step=projectFiles)
 
 After this you can write code to instantiate an API client object, get a controller object and  make API calls. Sample code is given in the subsequent sections.
 
@@ -72,7 +72,7 @@ After this you can write code to instantiate an API client object, get a control
 
 To run the file within your test project, right click on your Python file inside your Test project and click on `Run`
 
-![Run Test Project - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&libraryName=firstlanguageapi.firstlanguageapi_client&className=FirstlanguageapiClient&step=runProject)
+![Run Test Project - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&libraryName=firstlanguage_python.firstlanguage_python_client&className=FirstlanguageapiClient&step=runProject)
 
 ## Test the SDK
 
@@ -93,7 +93,6 @@ The following parameters are configurable for the API Client:
 
 | Parameter | Type | Description |
 |  --- | --- | --- |
-| `apikey` | `string` | API Key can be copied from your dashboard |
 | `http_client_instance` | `HttpClient` | The Http Client passed from the sdk user for making requests |
 | `override_http_client_configuration` | `bool` | The value which determines to override properties of the passed Http Client from the sdk user |
 | `timeout` | `float` | The value to use for connection timeout. <br> **Default: 60** |
@@ -101,15 +100,16 @@ The following parameters are configurable for the API Client:
 | `backoff_factor` | `float` | A backoff factor to apply between attempts after the second try. <br> **Default: 2** |
 | `retry_statuses` | `Array of int` | The http statuses on which retry is to be done. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
 | `retry_methods` | `Array of string` | The http methods on which retry is to be done. <br> **Default: ['GET', 'PUT']** |
+| `apikey` | `string` |  |
 
 The API client can be initialized as follows:
 
 ```python
-from firstlanguageapi.firstlanguageapi_client import FirstlanguageapiClient
-from firstlanguageapi.configuration import Environment
+from firstlanguage_python.firstlanguage_python_client import FirstlanguageapiClient
+from firstlanguage_python.configuration import Environment
 
 client = FirstlanguageapiClient(
-    apikey='apikey',
+    apikey='apikey',
     environment=Environment.PRODUCTION,)
 ```
 
@@ -120,7 +120,8 @@ This API uses `Custom Header Signature`.
 ## List of APIs
 
 * [Basic AP Is](/doc/controllers/basic-ap-is.md)
-* [Advanced AP Is](/doc/controllers/advanced-ap-is.md)
+* [Advanced AP Is](/doc/controllers/advanced-ap-is.md)
+* [Enterprise Only](/doc/controllers/enterprise-only.md)
 
 ## Classes Documentation
 
diff --git a/__pycache__/TestSDK.cpython-39.pyc b/__pycache__/TestSDK.cpython-39.pyc
new file mode 100644
index 0000000..ac4662b
Binary files /dev/null and b/__pycache__/TestSDK.cpython-39.pyc differ
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..277f1f2
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1 @@
+theme: jekyll-theme-cayman
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 0000000..8e63637
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="{{ site.lang | default: "en-US" }}">
+  <head>
+    <meta charset="UTF-8">
+
+{% seo %}
+    <link rel="preconnect" href="https://fonts.gstatic.com">
+    <link rel="preload" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap" as="style" type="text/css" crossorigin>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
+    <link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
+    {% include head-custom.html %}
+  </head>
+  <body>
+    <a id="skip-to-content" href="#content">Skip to the content.</a>
+
+    <header class="page-header" role="banner">
+      <h1 class="project-name">{{ page.description | default: site.description | default: site.github.repository_name }}</h1>      
+    </header>
+
+    <main id="content" class="main-content" role="main">
+      {{ content }}
+
+      <footer class="site-footer">        
+      </footer>
+    </main>
+  </body>
+</html>
diff --git a/assets/css/style.scss b/assets/css/style.scss
new file mode 100644
index 0000000..9124954
--- /dev/null
+++ b/assets/css/style.scss
@@ -0,0 +1,36 @@
+---
+---
+
+@import 'jekyll-theme-cayman';
+
+.page-header {
+    background-color: #0f222d;
+    background-image: linear-gradient(#0f222d, #0f222d);
+    h1,
+    h2,
+    h3,
+    h4,
+    h5,
+    h6 {
+      color: #fff5d0;
+    }
+  }
+
+  .main-content {    
+    h1,
+    h2,
+    h3,
+    h4,
+    h5,
+    h6 {
+      color: #0f222d;
+    }          
+  }
+
+  .main-content pre>code {
+    color: #fff5d0;
+  }
+  .main-content .highlight pre, .main-content pre {
+    background-color: #0f222d;
+    color: #fff5d0;
+  }
diff --git a/default.html b/default.html
new file mode 100644
index 0000000..3582678
--- /dev/null
+++ b/default.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="{{ site.lang | default: "en-US" }}">
+  <head>
+    <meta charset="UTF-8">
+
+{% seo %}
+    <link rel="preconnect" href="https://fonts.gstatic.com">
+    <link rel="preload" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap" as="style" type="text/css" crossorigin>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
+    <link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
+    {% include head-custom.html %}
+  </head>
+  <body>
+    <a id="skip-to-content" href="#content">Skip to the content.</a>
+
+    <header class="page-header" role="banner">
+      <h1 class="project-name">{{ page.description | default: site.description | default: site.github.repository_name }}</h1>           
+    </header>
+
+    <main id="content" class="main-content" role="main">
+      {{ content }}
+
+      <footer class="site-footer">        
+      </footer>
+    </main>
+  </body>
+</html>
diff --git a/dist/firstlanguage_python-1.0.0.tar.gz b/dist/firstlanguage_python-1.0.0.tar.gz
new file mode 100644
index 0000000..9b658bf
Binary files /dev/null and b/dist/firstlanguage_python-1.0.0.tar.gz differ
diff --git a/dist/firstlanguage_python-1.0.1.tar.gz b/dist/firstlanguage_python-1.0.1.tar.gz
new file mode 100644
index 0000000..7955d3a
Binary files /dev/null and b/dist/firstlanguage_python-1.0.1.tar.gz differ
diff --git a/dist/firstlanguage_python-2.1.tar.gz b/dist/firstlanguage_python-2.1.tar.gz
new file mode 100644
index 0000000..d35bf38
Binary files /dev/null and b/dist/firstlanguage_python-2.1.tar.gz differ
diff --git a/dist/firstlanguage_python-2.2.tar.gz b/dist/firstlanguage_python-2.2.tar.gz
new file mode 100644
index 0000000..eb0db5e
Binary files /dev/null and b/dist/firstlanguage_python-2.2.tar.gz differ
diff --git a/dist/firstlanguage_python-2.3.tar.gz b/dist/firstlanguage_python-2.3.tar.gz
new file mode 100644
index 0000000..c6ce679
Binary files /dev/null and b/dist/firstlanguage_python-2.3.tar.gz differ
diff --git a/dist/firstlanguage_python-2.4.tar.gz b/dist/firstlanguage_python-2.4.tar.gz
new file mode 100644
index 0000000..2fd5870
Binary files /dev/null and b/dist/firstlanguage_python-2.4.tar.gz differ
diff --git a/dist/firstlanguage_python-2.tar.gz b/dist/firstlanguage_python-2.tar.gz
new file mode 100644
index 0000000..792f9b9
Binary files /dev/null and b/dist/firstlanguage_python-2.tar.gz differ
diff --git a/doc/client.md b/doc/client.md
index f814943..b64d191 100644
--- a/doc/client.md
+++ b/doc/client.md
@@ -5,7 +5,6 @@ The following parameters are configurable for the API Client:
 
 | Parameter | Type | Description |
 |  --- | --- | --- |
-| `apikey` | `string` | API Key can be copied from your dashboard |
 | `http_client_instance` | `HttpClient` | The Http Client passed from the sdk user for making requests |
 | `override_http_client_configuration` | `bool` | The value which determines to override properties of the passed Http Client from the sdk user |
 | `timeout` | `float` | The value to use for connection timeout. <br> **Default: 60** |
@@ -13,6 +12,7 @@ The following parameters are configurable for the API Client:
 | `backoff_factor` | `float` | A backoff factor to apply between attempts after the second try. <br> **Default: 2** |
 | `retry_statuses` | `Array of int` | The http statuses on which retry is to be done. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
 | `retry_methods` | `Array of string` | The http methods on which retry is to be done. <br> **Default: ['GET', 'PUT']** |
+| `apikey` | `string` |  |
 
 The API client can be initialized as follows:
 
@@ -35,4 +35,5 @@ The gateway for the SDK. This class acts as a factory for the Controllers and al
 |  --- | --- |
 | basic_ap_is | Gets BasicAPIsController |
 | advanced_ap_is | Gets AdvancedAPIsController |
+| enterprise_only | Gets EnterpriseOnlyController |
 
diff --git a/doc/controllers/advanced-ap-is.md b/doc/controllers/advanced-ap-is.md
index 8a5e298..12afdb0 100644
--- a/doc/controllers/advanced-ap-is.md
+++ b/doc/controllers/advanced-ap-is.md
@@ -1,7 +1,5 @@
 # Advanced AP Is
 
-Advanced text processing APIs
-
 ```python
 advanced_ap_is_controller = client.advanced_ap_is
 ```
@@ -12,16 +10,38 @@ advanced_ap_is_controller = client.advanced_ap_is
 
 ## Methods
 
-* [Get Classification](/doc/controllers/advanced-ap-is.md#get-classification)
-* [Get QA](/doc/controllers/advanced-ap-is.md#get-qa)
-* [Get NER](/doc/controllers/advanced-ap-is.md#get-ner)
+* [Get Classification](../../doc/controllers/advanced-ap-is.md#get-classification)
+* [Get QA](../../doc/controllers/advanced-ap-is.md#get-qa)
+* [Get Table QA](../../doc/controllers/advanced-ap-is.md#get-table-qa)
+* [Get Image Caption](../../doc/controllers/advanced-ap-is.md#get-image-caption)
+* [Get NER](../../doc/controllers/advanced-ap-is.md#get-ner)
+* [Get Summary](../../doc/controllers/advanced-ap-is.md#get-summary)
+* [Get Translate](../../doc/controllers/advanced-ap-is.md#get-translate)
 
 
 # Get Classification
 
-# Stemmer : Defintion and it's usage
+A text classifier identifies the categories of the text given as input. Classifying the texts is one of the powerful preprocessing technique in topic identification and sentiment classification (product reviews, movie reviews etc)and indexing the texts while building a search system.
+
+# Languages covered:
 
-# Languages covered:
+| Languages  | ISO Code |
+|------------|----------|
+| Arabic     | ar       |
+| Bulgarian  | bg       |
+| Chinese    | zh       |
+| English    | en       |
+| French     | fr       |
+| German     | de       |
+| Greek      | el       |
+| Hindi      | hi       |
+| Russian    | ru       |
+| Spanish    | es       |
+| Swahili    | sw       |
+| Thai       | th       |
+| Turkish    | tr       |
+| Urdu       | ur       |
+| Vietnamese | vi       |
 
 ```python
 def get_classification(self,
@@ -32,33 +52,49 @@ def get_classification(self,
 
 | Parameter | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+| `body` | [`object`](../../$m/) | Body, Required | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile |
 
 ## Response Type
 
-[`Responseclassify`](/doc/models/responseclassify.md)
+[`Responseclassify`](../../doc/models/responseclassify.md)
 
 ## Example Usage
 
 ```python
-body = jsonpickle.decode('{"key1":"val1","key2":"val2"}')
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"context":"context6","lang":"lang6","labels":[{"key1":"val1","key2":"val2"},{"key1":"val1","key2":"val2"},{"key1":"val1","key2":"val2"}]}}}')
 
 result = advanced_ap_is_controller.get_classification(body)
 ```
 
+## Example Response *(as JSON)*
+
+```json
+{
+  "labels": [
+    "positive",
+    "negative"
+  ],
+  "scores": [
+    0.9966060519218445,
+    0.0033939925488084555
+  ]
+}
+```
+
 ## Errors
 
 | HTTP Status Code | Error Description | Exception Class |
 |  --- | --- | --- |
-| 400 | Error output | [`ErrorsException`](/doc/models/errors-exception.md) |
-| 426 | Please use HTTPS protocol | [`ApiClassify426ErrorException`](/doc/models/api-classify-426-error-exception.md) |
+| 400 | Error output | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`ApiClassify426ErrorException`](../../doc/models/api-classify-426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
 
 
 # Get QA
 
-# Stemmer : Defintion and it's usage
+A Question Answering System retrieves the answer relevant to the question given by the user. A question answering system can be used for building a text based chatbots, search engines etc. Our question answering system  is mutilingual and supports 100 + languages. Please use ISO 639-2 2 digit language code  to get results. For example, use 'en' for English, 'ta' for Tamil, 'hi' for Hindi, 'fr' for French etc.
 
-# Languages covered:
+For ISO code reference, please check the link https://www.loc.gov/standards/iso639-2/php/code_list.php
 
 ```python
 def get_qa(self,
@@ -69,16 +105,18 @@ def get_qa(self,
 
 | Parameter | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `body` | `object` | Body, Optional | Add a JSON Input as per the schema defined below |
+| `body` | [`object`](../../$m/) | Body, Optional | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile |
 
 ## Response Type
 
-[`ApiQaResponse`](/doc/models/api-qa-response.md)
+[`ApiQaResponse`](../../doc/models/api-qa-response.md)
 
 ## Example Usage
 
 ```python
-result = advanced_ap_is_controller.get_qa()
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"question":"எவை மூன்றும் எப்போதும் ஒன்றாகவே இருக்கும்?","lang":"ta","context":"உப்பு, புளி, மிளகாய் மூன்றும் எப்போதும் ஒன்றாகவே இருக்கும். ஒருநாள், “குழம்பிற்கு யார் முக்கியம்? நீயா! நானா!” என்று சண்டை போட்டன. மூன்று பேரும் தனிதனியாகச் சென்று குழம்பில் சேரலாம் என்று முடிவு செய்தன. முதல் நாள், உப்பு மட்டும் குழம்பில் சேர்ந்து கொண்டது. “ஆ! ஒரே உப்பு! வாயில் வைக்க முடியவில்லை!” என்று எல்லோரும் கத்தினார்கள்"}}}')
+
+result = advanced_ap_is_controller.get_qa(body)
 ```
 
 ## Example Response *(as JSON)*
@@ -96,15 +134,155 @@ result = advanced_ap_is_controller.get_qa()
 
 | HTTP Status Code | Error Description | Exception Class |
 |  --- | --- | --- |
-| 400 | Bad Request | [`ErrorsException`](/doc/models/errors-exception.md) |
-| 426 | Please use HTTPS protocol | [`M426ErrorException`](/doc/models/m426-error-exception.md) |
+| 400 | Bad Request | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](../../doc/models/m426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Table QA
+
+# TableQA : Defintion and it's usage
+
+Table QA uses TAPAS based model to get answers from table input. The table can be parsed into a JSON object or it can be a link to a CSV file. Currently only Plain CSV file is supported.
+
+This API works only for English language currently
+
+Example for flattend table in JSON Format:<br/>
+{"Cities": ["Paris, France", "London, England", "Lyon, France"], "Inhabitants": ["2.161", "8.982", "0.513"]}
+
+The API can return the original table rows from which the answer was extracted based on the flag 'sendBackRows'
+
+```python
+def get_table_qa(self,
+                body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | [`object`](../../$m/) | Body, Optional | Add a JSON Input as per the schema defined below. For URL input, if you are providing Google drive or Google Spreadsheet url ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Spreadsheet link:<br><br>https://docs.google.com/spreadsheets/d/1TtzPAHqpaTB7Ltdq0zwZ8FamF7O9aC4KH4EpmwI/export?format=csv&gid=151344200<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile<br><br>For Flat table input check the example. |
+
+## Response Type
+
+[`List of ApiTableqaResponse`](../../doc/models/api-tableqa-response.md)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"flattable":{"Cities":["Paris, France","London, England","Lyon, France"],"Inhabitants":["2.161","8.982","0.513"]},"sendBackRows":false,"questions":["How many inhabitants in France","How Many inhabitants in England"]}}}')
+
+result = advanced_ap_is_controller.get_table_qa(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+[
+  {
+    "query": "How many inhabitants in France",
+    "answer": [
+      "SUM > 2.674"
+    ],
+    "rows": [
+      "Paris, France,2.161",
+      "Lyon, France,0.513"
+    ]
+  },
+  {
+    "query": "How Many inhabitants in England",
+    "answer": [
+      "SUM > 8.982"
+    ],
+    "rows": [
+      "London, England,8.982"
+    ]
+  }
+]
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](../../doc/models/m426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Image Caption
+
+# Image Captioning with Visual Attention : Defintion and it's usage
+
+Image Captioning is the process of generating textual description of an image. It uses both Natural Language Processing and Computer Vision to generate the captions.
+
+This API works generates only English Captions
+
+<b>Enterprise Plan Alert:</b> For Enterprise Users GPU powered endpoint can be provisioned. <b> This will reduce the response time of the API by alomst 90%.</b>
+
+```python
+def get_image_caption(self,
+                     body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | [`ApiImagecaptionRequest`](../../doc/models/api-imagecaption-request.md) | Body, Optional | Add a JSON Input as per the schema defined below.<br><br>For URL, if you are providing Google drive or Google Spreadsheet url ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive:<br><br>https://drive.google.com/uc?id=idofthefile |
+
+## Response Type
+
+[`ApiImagecaptionResponse`](../../doc/models/api-imagecaption-response.md)
+
+## Example Usage
+
+```python
+body = ApiImagecaptionRequest()
+body.input = Input9()
+body.input.url = 'https://i.redd.it/v1fvin01ynv51.jpg'
+
+result = advanced_ap_is_controller.get_image_caption(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "generated_caption": "A view of a beach with a sun shining over it"
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](../../doc/models/m426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
 
 
 # Get NER
 
-# Stemmer : Defintion and it's usage
+Named Entity Recognitiion  (NER) is extracting the specific Nouns such as, Person Names, Location names, Organization Names, Currency , Dates. It is a classification task. NER can be used as a sub-task in applications such as Search Systems, Chatbots, Question Answering systems, Text Summarization etc.
+
+# Languages covered:
 
-# Languages covered:
+| Languages          | ISO Code |
+|--------------------|----------|
+| Arabic             | ar       |
+| Chinese            | zh       |
+| Dutch              | nl       |
+| English            | en       |
+| French             | fr       |
+| German             | de       |
+| Italian            | it       |
+| Latvian            | lv       |
+| Portuguese         | pt       |
+| Spanish            | es       |
+
+For other languages we cannot guarantee results but you can try with ISO code.
+For ISO code reference, please check the link https://www.loc.gov/standards/iso639-2/php/code_list.php
 
 ```python
 def get_ner(self,
@@ -115,16 +293,18 @@ def get_ner(self,
 
 | Parameter | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `body` | `object` | Body, Optional | Add a JSON Input as per the schema defined below |
+| `body` | [`object`](../../$m/) | Body, Optional | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile |
 
 ## Response Type
 
-[`List of ApiNerResponse`](/doc/models/api-ner-response.md)
+[`List of ApiNerResponse`](../../doc/models/api-ner-response.md)
 
 ## Example Usage
 
 ```python
-result = advanced_ap_is_controller.get_ner()
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"text":"إسمي محمد وأسكن في برلين","lang":"ar"}}}')
+
+result = advanced_ap_is_controller.get_ner(body)
 ```
 
 ## Example Response *(as JSON)*
@@ -150,6 +330,201 @@ result = advanced_ap_is_controller.get_ner()
 
 | HTTP Status Code | Error Description | Exception Class |
 |  --- | --- | --- |
-| 400 | Bad Request | [`ErrorsException`](/doc/models/errors-exception.md) |
-| 426 | Please use HTTPS protocol | [`M426ErrorException`](/doc/models/m426-error-exception.md) |
+| 400 | Bad Request | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](../../doc/models/m426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Summary
+
+Summarization generates a crisp content of the large input text which is highly coherent.
+
+| Languages               | ISO Code |
+|-------------------------|----------|
+| Amharic                 | am       |
+| Arabic                  |  ar      |
+| Azerbaijani             |  az      |
+| Bengali                 |  bn      |
+| Burmese                 |  my      |
+| Chinese                 |  zh      |
+| English                 |  en      |
+| French                  |  fr      |
+| Gaelic; Scottish Gaelic | gd       |
+| Gujarati                |  gu      |
+| Hausa                   |  ha      |
+| Hindi                   |  hi      |
+| Igbo                    |  ig      |
+| Indonesian              |  id      |
+| Japanese                |  ja      |
+| Kirghiz; Kyrgyz         | ky       |
+| Korean                  |  ko      |
+| Marathi                 |  mr      |
+| Nepali                  |  ne      |
+| Oromo                   | om       |
+| Persian                 | fa       |
+| Portuguese              |  pt      |
+| Punjabi                 |  pa      |
+| Pushto; Pashto          | ps       |
+| Rundi                   | rn       |
+| Russian                 | ru       |
+| Serbian                 |  sr      |
+| Sinhala; Sinhalese      |  si      |
+| Somali                  |  so      |
+| Spanish; Castilian      |  es      |
+| Swahili                 |  sw      |
+| Tamil                   |  ta      |
+| Telugu                  |  te      |
+| Thai                    |  th      |
+| Tigrinya                |  ti      |
+| Turkish                 |  tr      |
+| Ukrainian               |  uk      |
+| Urdu                    |  ur      |
+| Uzbek                   |  uz      |
+| Vietnamese              |  vi      |
+| Welsh                   |  cy      |
+| Yoruba                  |  yo      |
+
+```python
+def get_summary(self,
+               body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | [`object`](../../$m/) | Body, Optional | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile |
+
+## Response Type
+
+[`ApiSummaryResponse`](../../doc/models/api-summary-response.md)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"text":"Videos that say approved vaccines are dangerous and cause autism, cancer or infertility are among those that will be taken down, the company said. The policy includes the termination of accounts of anti-vaccine influencers. Tech giants have been criticised for not doing more to counter false health information on their sites. In July, US President Joe Biden said social media platforms were largely responsible for people\'s scepticism in getting vaccinated by spreading misinformation, and appealed for them to address the issue. YouTube, which is owned by Google, said 130,000 videos were removed from its platform since last year, when it implemented a ban on content spreading misinformation about Covid vaccines. In a blog post, the company said it had seen false claims about Covid jabs spill over into misinformation about vaccines in general. The new policy covers long-approved vaccines, such as those against measles or hepatitis B. We\'re expanding our medical misinformation policies on YouTube with new guidelines on currently administered vaccines that are approved and confirmed to be safe and effective by local health authorities and the WHO, the post said, referring to the World Health Organization.","lang":"en"}}}')
+
+result = advanced_ap_is_controller.get_summary(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "summary": "YouTube has announced a ban on videos spreading misinformation about Covid vaccines."
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](../../doc/models/m426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Translate
+
+Machine Translation is translating the text automatically from  one language to another langauge.
+
+# Languages covered:
+
+| Languages                             | ISO Code   |
+|---------------------------------------|------------|
+|  Abkhazian                            |   ab       |
+|  Afrikaans                            |   af       |
+|  Amharic                              |   am       |
+|  Bashkir                              |   ba       |
+|  Catalan; Valencian                   |   ca       |
+|  Chechen                              |   ce       |
+|  Corsican                             |   co       |
+|  Chuvash                              |   cv       |
+|  Ewe                                  |   ee       |
+|  English                              |   en       |
+|  Basque                               |   eu       |
+|  Fijian                               |   fj       |
+|  French                               |   fr       |
+|  Galician                             |   gl       |
+|  Gujarati                             |   gu       |
+|  Manx                                 |   gv       |
+|  Hebrew                               |   he       |
+|  Haitian; Haitian Creole              |   ht       |
+|  Armenian                             |   hy       |
+|  Indonesian                           |   id       |
+|  Igbo                                 |   ig       |
+|  Icelandic                            |   is       |
+|  Japanese                             |   ja       |
+|  Kalaallisut; Greenlandic             |   kl       |
+|  Ganda                                |   lg       |
+|  Lingala                              |   ln       |
+|  Malagasy                             |   mg       |
+|  Marshallese                          |   mh       |
+|  Macedonian                           |   mk       |
+|  Mongolian                            |   mn       |
+|  Nauru                                |   na       |
+|  Bokmål, Norwegian; Norwegian Bokmål  |   nb       |
+|  Chichewa; Chewa; Nyanja              |   ny       |
+|  Ossetian; Ossetic                    |   os       |
+|  Pushto; Pashto                       |   ps       |
+|  Romansh                              |   rm       |
+|  Rundi                                |   rn       |
+|  Sango                                |   sg       |
+|  Samoan                               |   sm       |
+|  Shona                                |   sn       |
+|  Somali                               |   so       |
+|  Albanian                             |   sq       |
+|  Tamil                                |   ta       |
+|  Tigrinya                             |   ti       |
+|  Turkmen                              |   tk       |
+|  Tonga                                |   to       |
+|  Turkish                              |   tr       |
+|  Tsonga                               |   ts       |
+|  Tatar                                |   tt       |
+|  Tahitian                             |   ty       |
+|  Ukrainian                            |   uk       |
+|  Vietnamese                           |   vi       |
+|  Walloon                              |   wa       |
+|  Xhosa                                |   xh       |
+|  Yoruba                               |   yo       |
+|  Zulu                                 |   zu       |
+
+```python
+def get_translate(self,
+                 body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | [`object`](../../$m/) | Body, Optional | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile<br><br>**preserveFormat Flag:**<br><br>When true:<br><br>This applies only for PDF and DOCX content types. The API will try to maintain the source file formatting. DOCX files will mostly work without any issues. But for PDF files, the API will try to maintain the format but it is not guaranteed. Scanned documents will also not work. For PDF files, if the target language font is not renderred properly, please report the issue at info@firstlanguage.in<br><br>When false:<br><br>If the flag is false, then the API will simply read all text in the PDF and docx files and translate and send the response back as plaintext. |
+
+## Response Type
+
+[`ApiTranslateResponse`](../../doc/models/api-translate-response.md)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"text":"Today is a good day","lang":"ta"}}}')
+
+result = advanced_ap_is_controller.get_translate(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "generated_text": "இன்று நல்ல நாள்."
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](../../doc/models/m426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
 
diff --git a/doc/controllers/advanced-api.md b/doc/controllers/advanced-api.md
new file mode 100644
index 0000000..11909da
--- /dev/null
+++ b/doc/controllers/advanced-api.md
@@ -0,0 +1,415 @@
+# Advanced APIs
+
+Advanced text processing APIs
+
+```python
+advanced_api_controller = client.advanced_api
+```
+
+## Class Name
+
+`AdvancedAPIsController`
+
+## Methods
+
+* [Get Classification](/firstlanguage_python/doc/controllers/advanced-api.html#get-classification)
+* [Get QA](/firstlanguage_python/doc/controllers/advanced-api.html#get-qa)
+* [Get NER](/firstlanguage_python/doc/controllers/advanced-api.html#get-ner)
+* [Get Summary](/firstlanguage_python/doc/controllers/advanced-api.html#get-summary)
+* [Get Translate](/firstlanguage_python/doc/controllers/advanced-api.html#get-translate)
+
+
+# Get Classification
+
+# Text Classification  : Defintion and it's usage
+
+A text classifier identifies the categories of the text given as input. Classifying the texts is one of the powerful preprocessing technique in topic identification and sentiment classification (product reviews, movie reviews etc)and indexing the texts while building a search system.
+
+# Languages covered:
+
+| Languages  | ISO Code |
+|------------|----------|
+| Arabic     | ar       |
+| Bulgarian  | bg       |
+| Chinese    | zh       |
+| English    | en       |
+| French     | fr       |
+| German     | de       |
+| Greek      | el       |
+| Hindi      | hi       |
+| Russian    | ru       |
+| Spanish    | es       |
+| Swahili    | sw       |
+| Thai       | th       |
+| Turkish    | tr       |
+| Urdu       | ur       |
+| Vietnamese | vi       |
+
+```python
+def get_classification(self,
+                      body)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`Responseclassify`](/firstlanguage_python/doc/models/responseclassify.html)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"value":{"input":{"context":"context4","lang":"lang4","labels":[{"key1":"val1","key2":"val2"}]}}}')
+
+result = advanced_api_controller.get_classification(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "labels": [
+    "positive",
+    "negative"
+  ],
+  "scores": [
+    0.9966060519218445,
+    0.0033939925488084555
+  ]
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Error output | [`ErrorsException`](/firstlanguage_python/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`ApiClassify426ErrorException`](/firstlanguage_python/doc/models/api-classify-426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get QA
+
+# QA : Defintion and it's usage
+
+A Question Answering System retrieves the answer relevant to the question given by the user. A question answering system can be used for building a text based chatbots, search engines etc. Our question answering system  is mutilingual and supports 100 + languages. Please use ISO 639-2 2 digit language code  to get results. For example, use 'en' for English, 'ta' for Tamil, 'hi' for Hindi, 'fr' for French etc.
+
+For ISO code reference, please check the link https://www.loc.gov/standards/iso639-2/php/code_list.php
+
+```python
+def get_qa(self,
+          body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Optional | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`ApiQaResponse`](/firstlanguage_python/doc/models/api-qa-response.html)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"value":{"input":{"question":"எவை மூன்றும் எப்போதும் ஒன்றாகவே இருக்கும்?","lang":"ta","context":"உப்பு, புளி, மிளகாய் மூன்றும் எப்போதும் ஒன்றாகவே இருக்கும். ஒருநாள், “குழம்பிற்கு யார் முக்கியம்? நீயா! நானா!” என்று சண்டை போட்டன. மூன்று பேரும் தனிதனியாகச் சென்று குழம்பில் சேரலாம் என்று முடிவு செய்தன. முதல் நாள், உப்பு மட்டும் குழம்பில் சேர்ந்து கொண்டது. “ஆ! ஒரே உப்பு! வாயில் வைக்க முடியவில்லை!” என்று எல்லோரும் கத்தினார்கள்"}}}')
+result = advanced_api_controller.get_qa(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "score": 0.028566665947437286,
+  "start": 0,
+  "end": 20,
+  "answer": "உப்பு, புளி, மிளகாய்"
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](/firstlanguage_python/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](/firstlanguage_python/doc/models/m426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get NER
+
+# Named Entity Recognition : Defintion and it's usage
+
+Named Entity Recognitiion  (NER) is extracting the specific Nouns such as, Person Names, Location names, Organization Names, Currency , Dates. It is a classification task. NER can be used as a sub-task in applications such as Search Systems, Chatbots, Question Answering systems, Text Summarization etc.
+
+# Languages covered:
+
+| Languages          | ISO Code |
+|--------------------|----------|
+| Arabic             | ar       |
+| Chinese            | zh       |
+| Dutch              | nl       |
+| English            | en       |
+| French             | fr       |
+| German             | de       |
+| Italian            | it       |
+| Latvian            | lv       |
+| Portuguese         | pt       |
+| Spanish            | es       |
+
+For other languages we cannot guarantee results but you can try with ISO code.
+For ISO code reference, please check the link https://www.loc.gov/standards/iso639-2/php/code_list.php
+
+```python
+def get_ner(self,
+           body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Optional | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`List of ApiNerResponse`](/firstlanguage_python/doc/models/api-ner-response.html)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"value":{"input":{"text":"إسمي محمد وأسكن في برلين","lang":"ar"}}}')
+result = advanced_api_controller.get_ner(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+[
+  {
+    "entity_group": "PER",
+    "word": "محمد",
+    "start": "4",
+    "end": "9"
+  },
+  {
+    "entity_group": "LOC",
+    "word": "برلين",
+    "start": "18",
+    "end": "24"
+  }
+]
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](/firstlanguage_python/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](/firstlanguage_python/doc/models/m426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Summary
+
+# Summarization : Defintion and it's usage
+
+Summarization generates a crisp content of the large input text which is highly coherent.
+
+| Languages               | ISO Code |
+|-------------------------|----------|
+| Amharic                 | am       |
+| Arabic                  |  ar      |
+| Azerbaijani             |  az      |
+| Bengali                 |  bn      |
+| Burmese                 |  my      |
+| Chinese                 |  zh      |
+| English                 |  en      |
+| French                  |  fr      |
+| Gaelic; Scottish Gaelic | gd       |
+| Gujarati                |  gu      |
+| Hausa                   |  ha      |
+| Hindi                   |  hi      |
+| Igbo                    |  ig      |
+| Indonesian              |  id      |
+| Japanese                |  ja      |
+| Kirghiz; Kyrgyz         | ky       |
+| Korean                  |  ko      |
+| Marathi                 |  mr      |
+| Nepali                  |  ne      |
+| Oromo                   | om       |
+| Persian                 | fa       |
+| Portuguese              |  pt      |
+| Punjabi                 |  pa      |
+| Pushto; Pashto          | ps       |
+| Rundi                   | rn       |
+| Russian                 | ru       |
+| Serbian                 |  sr      |
+| Sinhala; Sinhalese      |  si      |
+| Somali                  |  so      |
+| Spanish; Castilian      |  es      |
+| Swahili                 |  sw      |
+| Tamil                   |  ta      |
+| Telugu                  |  te      |
+| Thai                    |  th      |
+| Tigrinya                |  ti      |
+| Turkish                 |  tr      |
+| Ukrainian               |  uk      |
+| Urdu                    |  ur      |
+| Uzbek                   |  uz      |
+| Vietnamese              |  vi      |
+| Welsh                   |  cy      |
+| Yoruba                  |  yo      |
+
+```python
+def get_summary(self,
+               body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Optional | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`ApiSummaryResponse`](/doc/models/api-summary-response.html)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"input":{"text":"Videos that say approved vaccines are dangerous and cause autism, cancer or infertility are among those that will be taken down, the company said. The policy includes the termination of accounts of anti-vaccine influencers. Tech giants have been criticised for not doing more to counter false health information on their sites. In July, US President Joe Biden said social media platforms were largely responsible for people\'s scepticism in getting vaccinated by spreading misinformation, and appealed for them to address the issue. YouTube, which is owned by Google, said 130,000 videos were removed from its platform since last year, when it implemented a ban on content spreading misinformation about Covid vaccines. In a blog post, the company said it had seen false claims about Covid jabs spill over into misinformation about vaccines in general. The new policy covers long-approved vaccines, such as those against measles or hepatitis B. We\'re expanding our medical misinformation policies on YouTube with new guidelines on currently administered vaccines that are approved and confirmed to be safe and effective by local health authorities and the WHO, the post said, referring to the World Health Organization.","lang":"en"}}')
+
+result = advanced_ap_is_controller.get_summary(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "summary": "YouTube has announced a ban on videos spreading misinformation about Covid vaccines."
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](/doc/models/m426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Translate
+
+# Translation : Defintion and it's usage
+
+Machine Translation is translating the text automatically from  one language to another langauge.
+
+# Languages covered:
+
+| Languages                             | ISO Code   |
+|---------------------------------------|------------|
+|  Abkhazian                            |   ab       |
+|  Afrikaans                            |   af       |
+|  Amharic                              |   am       |
+|  Bashkir                              |   ba       |
+|  Catalan; Valencian                   |   ca       |
+|  Chechen                              |   ce       |
+|  Corsican                             |   co       |
+|  Chuvash                              |   cv       |
+|  Ewe                                  |   ee       |
+|  English                              |   en       |
+|  Basque                               |   eu       |
+|  Fijian                               |   fj       |
+|  French                               |   fr       |
+|  Galician                             |   gl       |
+|  Gujarati                             |   gu       |
+|  Manx                                 |   gv       |
+|  Hebrew                               |   he       |
+|  Haitian; Haitian Creole              |   ht       |
+|  Armenian                             |   hy       |
+|  Indonesian                           |   id       |
+|  Igbo                                 |   ig       |
+|  Icelandic                            |   is       |
+|  Japanese                             |   ja       |
+|  Kalaallisut; Greenlandic             |   kl       |
+|  Ganda                                |   lg       |
+|  Lingala                              |   ln       |
+|  Malagasy                             |   mg       |
+|  Marshallese                          |   mh       |
+|  Macedonian                           |   mk       |
+|  Mongolian                            |   mn       |
+|  Nauru                                |   na       |
+|  Bokmål, Norwegian; Norwegian Bokmål  |   nb       |
+|  Chichewa; Chewa; Nyanja              |   ny       |
+|  Ossetian; Ossetic                    |   os       |
+|  Pushto; Pashto                       |   ps       |
+|  Romansh                              |   rm       |
+|  Rundi                                |   rn       |
+|  Sango                                |   sg       |
+|  Samoan                               |   sm       |
+|  Shona                                |   sn       |
+|  Somali                               |   so       |
+|  Albanian                             |   sq       |
+|  Tamil                                |   ta       |
+|  Tigrinya                             |   ti       |
+|  Turkmen                              |   tk       |
+|  Tonga                                |   to       |
+|  Turkish                              |   tr       |
+|  Tsonga                               |   ts       |
+|  Tatar                                |   tt       |
+|  Tahitian                             |   ty       |
+|  Ukrainian                            |   uk       |
+|  Vietnamese                           |   vi       |
+|  Walloon                              |   wa       |
+|  Xhosa                                |   xh       |
+|  Yoruba                               |   yo       |
+|  Zulu                                 |   zu       |
+
+```python
+def get_translate(self,
+                 body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Optional | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`ApiTranslateResponse`](/doc/models/api-translate-response.html)
+
+## Example Usage
+
+```python
+body = '{"input":{"text":"அவள் வேகமாக ஓடினாள்","lang":"ta"} }'
+
+result = advanced_ap_is_controller.get_translate(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "generated_text": "இன்று நல்ல நாள்."
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](/doc/models/m426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
diff --git a/doc/controllers/basic-ap-is.md b/doc/controllers/basic-ap-is.md
index 70d4f6a..5fc9093 100644
--- a/doc/controllers/basic-ap-is.md
+++ b/doc/controllers/basic-ap-is.md
@@ -1,7 +1,5 @@
 # Basic AP Is
 
-Basic NLP text processing APIs
-
 ```python
 basic_ap_is_controller = client.basic_ap_is
 ```
@@ -12,48 +10,48 @@ basic_ap_is_controller = client.basic_ap_is
 
 ## Methods
 
-* [Get Stemmer](/doc/controllers/basic-ap-is.md#get-stemmer)
-* [Get Lemma](/doc/controllers/basic-ap-is.md#get-lemma)
-* [Get Morph](/doc/controllers/basic-ap-is.md#get-morph)
-* [Get Postag](/doc/controllers/basic-ap-is.md#get-postag)
+* [Get Stemmer](../../doc/controllers/basic-ap-is.md#get-stemmer)
+* [Get Lemma](../../doc/controllers/basic-ap-is.md#get-lemma)
+* [Get Morph](../../doc/controllers/basic-ap-is.md#get-morph)
+* [Get Postag](../../doc/controllers/basic-ap-is.md#get-postag)
 
 
 # Get Stemmer
 
-# Stemmer : Defintion and it's usage
-
-A word takes different inflectional forms. For instance, the word, "Compute" can take the forms, "computing", "computation",  and "computerize". The NLP applications such as Search Engines and Information Extraction would want to store the base or stem of the word, i.e "Compute" instead of accomodating all its inflected forms. This will yield in dimensionality reduction and incerases the efficiency of the system. The stemmer cuts the prefix and suffix of a word.
-
-# Languages covered:
-
-Our stemmer works for the following  26 languages. Our stemmer works using the snowball stemmer algorithm which is also known as Porter 2 Stemming algorithm.
-
-1. Tamil
-2. Hindi
-3. English
-4. Arabic
-5. Basque
-6. Catalan
-7. Danish
-8. Dutch
-9. Finnish
-10. French
-11. German
-12. Greek
-13. Hungarian
-14. Indonesian
-15. Irish
-16. Italian
-17. Lithuanian
-18. Nepali
-19. Norwegian
-20. Portuguese
-21. Romanian
-22. Russian
-23. Serbian
-24. Spanish
-25. Swedish
-26. Turkish
+A word takes different inflectional forms. For instance, the word, "Compute" can take the forms, "computing", "computation",  and "computerize". The NLP applications such as Search Engines and Information Extraction would want to store the base or stem of the word, i.e "Compute" instead of accomodating all its inflected forms. This will yield in dimensionality reduction and incerases the efficiency of the system. The stemmer cuts the prefix and suffix of a word.
+
+# Languages covered:
+
+Our stemmer works for the following  26 languages.
+
+| Languages    | ISO Code   |
+|--------------|------------|
+|  Arabic      |  ar        |
+|  Catalan     |  ca        |
+|  Danish      |  da        |
+|  German      |  de        |
+|  Greek       |  el        |
+|  English     |  en        |
+|  Spanish     |  es        |
+|  Basque      |  eu        |
+|  Finnish     |  fi        |
+|  French      |  fr        |
+|  Irish       |  ga        |
+|  Hindi       |  hi        |
+|  Hungarian   |  hu        |
+|  Indonesian  |  id        |
+|  Italian     |  it        |
+|  Lithuanian  |  lt        |
+|  Nepali      |  ne        |
+|  Dutch       |  nl        |
+|  Norwegian   |  no        |
+|  Portuguese  |  pt        |
+|  Romanian    |  ro        |
+|  Russian     |  ru        |
+|  Serbian     |  sr        |
+|  Swedish     |  sv        |
+|  Tamil       |  ta        |
+|  Turkish     |  tr        |
 
 ```python
 def get_stemmer(self,
@@ -64,34 +62,73 @@ def get_stemmer(self,
 
 | Parameter | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+| `body` | [`object`](../../$m/) | Body, Required | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile |
 
 ## Response Type
 
-[`List of Responsestem`](/doc/models/responsestem.md)
+[`List of Responsestem`](../../doc/models/responsestem.md)
 
 ## Example Usage
 
 ```python
-body = jsonpickle.decode('{"key1":"val1","key2":"val2"}')
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"text":"அவள் வேகமாக ஓடினாள்","lang":"ta"}}}')
 
 result = basic_ap_is_controller.get_stemmer(body)
 ```
 
+## Example Response *(as JSON)*
+
+```json
+[
+  {
+    "originalText": "அவள்",
+    "stem": "அவள்"
+  },
+  {
+    "originalText": "வேகமாக",
+    "stem": "வேகம்"
+  },
+  {
+    "originalText": "ஓடினாள்",
+    "stem": "ஓடி"
+  }
+]
+```
+
 ## Errors
 
 | HTTP Status Code | Error Description | Exception Class |
 |  --- | --- | --- |
-| 400 | Error output | [`ErrorsException`](/doc/models/errors-exception.md) |
-| 426 | Please use HTTPS protocol | [`ApiStemmer426ErrorException`](/doc/models/api-stemmer-426-error-exception.md) |
+| 400 | Error output | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`ApiStemmer426ErrorException`](../../doc/models/api-stemmer-426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
 
 
 # Get Lemma
 
-# Stemmer : Defintion and it's usage
-
+Lemmatizer is similar to stemmer that gives the stemmed version of a word but lemmatizer differs from the stemmer in giving a meaningful stem or the lemma. For instance, for the word, "smiling", the stemmer would give, "smil", stemming the suffix, "ing" but the lemmatizer would give the meaningful stem, "smile". lemmatizers can be used in applications such as,  Machine Translation, Search Engines, Text Summarization etc.
+
 # Languages covered:
 
+| Languages          | ISO Code |
+|--------------------|----------|
+| Catalan            | ca       |
+| Danish             | da       |
+| Dutch              | nl       |
+| English            | en       |
+| French             | fr       |
+| German             | de       |
+| Greek              | el       |
+| Italian            | it       |
+| Lithuanian         | lt       |
+| Macedonian         | mk       |
+| Norwegian (Bokmål) | nb       |
+| Polish             | pl       |
+| Portuguese         | pt       |
+| Romanian           | ro       |
+| Russian            | ru       |
+| Spanish            | es       |
+
 ```python
 def get_lemma(self,
              body)
@@ -101,34 +138,77 @@ def get_lemma(self,
 
 | Parameter | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+| `body` | [`object`](../../$m/) | Body, Required | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile |
 
 ## Response Type
 
-[`List of Responselemma`](/doc/models/responselemma.md)
+[`List of Responselemma`](../../doc/models/responselemma.md)
 
 ## Example Usage
 
 ```python
-body = jsonpickle.decode('{"key1":"val1","key2":"val2"}')
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"text":"Smiling makes everyone happy","lang":"en"}}}')
 
 result = basic_ap_is_controller.get_lemma(body)
 ```
 
+## Example Response *(as JSON)*
+
+```json
+[
+  {
+    "originalText": "Smiling",
+    "lemmatized": "smile"
+  },
+  {
+    "originalText": "makes",
+    "lemmatized": "make"
+  },
+  {
+    "originalText": "everyone",
+    "lemmatized": "everyone"
+  },
+  {
+    "originalText": "happy",
+    "lemmatized": "happy"
+  }
+]
+```
+
 ## Errors
 
 | HTTP Status Code | Error Description | Exception Class |
 |  --- | --- | --- |
-| 400 | Error output | [`ErrorsException`](/doc/models/errors-exception.md) |
-| 426 | Please use HTTPS protocol | [`ApiLemmatize426ErrorException`](/doc/models/api-lemmatize-426-error-exception.md) |
+| 400 | Error output | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`ApiLemmatize426ErrorException`](../../doc/models/api-lemmatize-426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
 
 
 # Get Morph
 
-# Stemmer : Defintion and it's usage
-
+Morphological Analyzer analyzes how a word is formed. It breaks a word into smaller units called, "morphemes" and gives a clue on the pattern of words of a particular langauge.  It can be used for building applications such as,  Machine Translation, Text Summarization, Search systems etc.
+
 # Languages covered:
 
+| Languages          | ISO Code |
+|--------------------|----------|
+| Catalan            | ca       |
+| Danish             | da       |
+| Dutch              | nl       |
+| English            | en       |
+| French             | fr       |
+| German             | de       |
+| Greek              | el       |
+| Italian            | it       |
+| Japanese           | ja       |
+| Lithuanian         | lt       |
+| Macedonian         | mk       |
+| Norwegian (Bokmål) | nb       |
+| Polish             | pl       |
+| Portuguese         | pt       |
+| Russian            | ru       |
+| Spanish            | es       |
+
 ```python
 def get_morph(self,
              body)
@@ -138,45 +218,214 @@ def get_morph(self,
 
 | Parameter | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+| `body` | [`object`](../../$m/) | Body, Required | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile |
 
 ## Response Type
 
-[`Responsemorph`](/doc/models/responsemorph.md)
+[`Responsemorph`](../../doc/models/responsemorph.md)
 
 ## Example Usage
 
 ```python
-body = jsonpickle.decode('{"key1":"val1","key2":"val2"}')
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"text":"Let us begin the API development.","lang":"en"}}}')
 
 result = basic_ap_is_controller.get_morph(body)
 ```
 
+## Example Response *(as JSON)*
+
+```json
+{
+  "Let": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "us": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "begin": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "the": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "API": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "development": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  ".": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  }
+}
+```
+
 ## Errors
 
 | HTTP Status Code | Error Description | Exception Class |
 |  --- | --- | --- |
-| 400 | Error output | [`ErrorsException`](/doc/models/errors-exception.md) |
-| 426 | Please use HTTPS protocol | [`ApiMorph426ErrorException`](/doc/models/api-morph-426-error-exception.md) |
+| 400 | Error output | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`ApiMorph426ErrorException`](../../doc/models/api-morph-426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
 
 
 # Get Postag
 
-**So, What is a POS Tagger?**
-
-Parts Of Speech Tagger, which is shortly known as POS Tagger is a software that automatically finds the word classes, when a text input is given. The text input can be a word, a sentence or a set of sentences. The word classes are the grammatical categories such as, Noun, Verb, Adverb etc. These category assigned to each word is a tag. A set of tags, each indicating a grammatical category is called, "tagsets". POS tagging is a mandatory pre processing for most of the Natural Language Processing Applications such as, Information Extraction, Information Retreival systems and Summary generation systems.
-
-**Is POS Tagger, a language-independent software?**
-
-No. A POS Tagger is a language-dependent software as the grammar rules will differ for every language. For instance, A word ending with "ing" might indicate a Verb" in English but this will not be applicable for other languages.
-
-**For what languages, our  POS Tagger API will work?**
-
-At present, our POS Tagger API works for English and Tami Languages. Soon we will extend the APIs to accomodate more languages.
-
-**How Precise are our POS Tagger API?**
-
-will update accuracy metrics soon .....
+Parts of Speech Tagger, which is shortly known as POS Tagger is a software that automatically finds the word classes, when a text input is given. The text input can be a word, a sentence or a set of sentences. The word classes are the grammatical categories such as, Noun, Verb, Adverb etc. The category assigned to each word is called as a tag. A set of tags, each indicating a grammatical category is called, "tagsets". POS tagging is a mandatory pre-processing for most of the Natural Language Processing Applications such as, Information Extraction, Information Retreival systems and Summary generation systems. A POS Tagger is a language-dependent software as the grammar rules will differ for every language. For instance, a word ending with "ing" might indicate a "Verb" in English but this will not be applicable for other languages.
+
+# Languages covered:
+
+| Languages          | ISO Code |
+|--------------------|----------|
+| Chinese            | zh       |
+| Dutch              | nl       |
+| English            | en       |
+| German             | de       |
+| Italian            | it       |
+| Lithuanian         | lt       |
+| Polish             | pl       |
+| Romanian           | ro       |
+| Tamil              | ta       |
 
 ```python
 def get_postag(self,
@@ -187,24 +436,60 @@ def get_postag(self,
 
 | Parameter | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+| `body` | [`object`](../../$m/) | Body, Required | Add a JSON Input as per the schema defined below<br><br>**Size limit:**<br><br>1MB for both text and URL input<br><br>**URL Input:**<br><br>For URL, we now accept 4 contentTypes.<br><br>* html<br>* plaintext<br>* pdf<br>* docx<br><br>If you are providing Google drive or Google Spreadsheet url, ensure that you provide a link which can download the file directly and not the share link.<br><br>Example for Google Drive link:<br><br>https://drive.google.com/uc?id=idofthefile |
 
 ## Response Type
 
-[`List of Responsepo`](/doc/models/responsepo.md)
+[`List of Responsepo`](../../doc/models/responsepo.md)
 
 ## Example Usage
 
 ```python
-body = jsonpickle.decode('{"key1":"val1","key2":"val2"}')
+body = jsonpickle.decode('{"$$__case":0,"$$__case_of":"oneOf","value":{"input":{"text":"Let us begin the API development.","lang":"en"}}}')
 
 result = basic_ap_is_controller.get_postag(body)
 ```
 
+## Example Response *(as JSON)*
+
+```json
+[
+  {
+    "originalText": "Let",
+    "postag": "VERB"
+  },
+  {
+    "originalText": "us",
+    "postag": "PRON"
+  },
+  {
+    "originalText": "begin",
+    "postag": "VERB"
+  },
+  {
+    "originalText": "the",
+    "postag": "DET"
+  },
+  {
+    "originalText": "API",
+    "postag": "PROPN"
+  },
+  {
+    "originalText": "development",
+    "postag": "NOUN"
+  },
+  {
+    "originalText": ".",
+    "postag": "PUNCT"
+  }
+]
+```
+
 ## Errors
 
 | HTTP Status Code | Error Description | Exception Class |
 |  --- | --- | --- |
-| 400 | Error output | [`ErrorsException`](/doc/models/errors-exception.md) |
-| 426 | Please use HTTPS protocol | [`ApiPostag426ErrorException`](/doc/models/api-postag-426-error-exception.md) |
+| 400 | Error output | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`ApiPostag426ErrorException`](../../doc/models/api-postag-426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
 
diff --git a/doc/controllers/basic-api.md b/doc/controllers/basic-api.md
new file mode 100644
index 0000000..d3a5b72
--- /dev/null
+++ b/doc/controllers/basic-api.md
@@ -0,0 +1,505 @@
+# Basic APIs
+
+Basic NLP text processing APIs
+
+```python
+basic_api_controller = client.basic_api
+```
+
+## Class Name
+
+`BasicAPIsController`
+
+## Methods
+
+* [Get Stemmer](/firstlanguage_python/doc/controllers/basic-api.html#get-stemmer)
+* [Get Lemma](/firstlanguage_python/doc/controllers/basic-api.html#get-lemma)
+* [Get Morph](/firstlanguage_python/doc/controllers/basic-api.html#get-morph)
+* [Get Postag](/firstlanguage_python/doc/controllers/basic-api.html#get-postag)
+
+
+# Get Stemmer
+
+# Stemmer : Defintion and it's usage
+
+A word takes different inflectional forms. For instance, the word, "Compute" can take the forms, "computing", "computation",  and "computerize". The NLP applications such as Search Engines and Information Extraction would want to store the base or stem of the word, i.e "Compute" instead of accomodating all its inflected forms. This will yield in dimensionality reduction and incerases the efficiency of the system. The stemmer cuts the prefix and suffix of a word.
+
+# Languages covered:
+
+Our stemmer works for the following  26 languages.
+
+| Languages    | ISO Code   |
+|--------------|------------|
+|  Arabic      |  ar        |
+|  Catalan     |  ca        |
+|  Danish      |  da        |
+|  German      |  de        |
+|  Greek       |  el        |
+|  English     |  en        |
+|  Spanish     |  es        |
+|  Basque      |  eu        |
+|  Finnish     |  fi        |
+|  French      |  fr        |
+|  Irish       |  ga        |
+|  Hindi       |  hi        |
+|  Hungarian   |  hu        |
+|  Indonesian  |  id        |
+|  Italian     |  it        |
+|  Lithuanian  |  lt        |
+|  Nepali      |  ne        |
+|  Dutch       |  nl        |
+|  Norwegian   |  no        |
+|  Portuguese  |  pt        |
+|  Romanian    |  ro        |
+|  Russian     |  ru        |
+|  Serbian     |  sr        |
+|  Swedish     |  sv        |
+|  Tamil       |  ta        |
+|  Turkish     |  tr        |
+
+```python
+def get_stemmer(self,
+               body)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`List of Responsestem`](/firstlanguage_python/doc/models/responsestem.html)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"value":{"input":{"text":"அவள் வேகமாக ஓடினாள்","lang":"ta"}}}')
+
+result = basic_api_controller.get_stemmer(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+[
+  {
+    "originalText": "அவள்",
+    "stem": "அவள்"
+  },
+  {
+    "originalText": "வேகமாக",
+    "stem": "வேகம்"
+  },
+  {
+    "originalText": "ஓடினாள்",
+    "stem": "ஓடி"
+  }
+]
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Error output | [`ErrorsException`](/firstlanguage_python/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`ApiStemmer426ErrorException`](/firstlanguage_python/doc/models/api-stemmer-426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Lemma
+
+# Lemmatizer : Defintion and it's usage
+
+Lemmatizer is similar to stemmer that gives the stemmed version of a word but lemmatizer differs from the stemmer in giving a meaningful stem or the lemma. For instance, for the word, "smiling", the stemmer would give, "smil", stemming the suffix, "ing" but the lemmatizer would give the meaningful stem, "smile". lemmatizers can be used in applications such as,  Machine Translation, Search Engines, Text Summarization etc.
+
+# Languages covered:
+
+| Languages          | ISO Code |
+|--------------------|----------|
+| Catalan            | ca       |
+| Danish             | da       |
+| Dutch              | nl       |
+| English            | en       |
+| French             | fr       |
+| German             | de       |
+| Greek              | el       |
+| Italian            | it       |
+| Lithuanian         | lt       |
+| Macedonian         | mk       |
+| Norwegian (Bokmål) | nb       |
+| Polish             | pl       |
+| Portuguese         | pt       |
+| Romanian           | ro       |
+| Russian            | ru       |
+| Spanish            | es       |
+
+```python
+def get_lemma(self,
+             body)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`List of Responselemma`](/firstlanguage_python/doc/models/responselemma.html)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"value":{"input":{"text":"Smiling makes everyone happy","lang":"en"}}}')
+
+result = basic_api_controller.get_lemma(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+[
+  {
+    "originalText": "Smiling",
+    "lemmatized": "smile"
+  },
+  {
+    "originalText": "makes",
+    "lemmatized": "make"
+  },
+  {
+    "originalText": "everyone",
+    "lemmatized": "everyone"
+  },
+  {
+    "originalText": "happy",
+    "lemmatized": "happy"
+  }
+]
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Error output | [`ErrorsException`](/firstlanguage_python/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`ApiLemmatize426ErrorException`](/firstlanguage_python/doc/models/api-lemmatize-426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Morph
+
+# Morphological Analyzer : Defintion and it's usage
+
+Morphological Analyzer analyzes how a word is formed. It breaks a word into smaller units called, "morphemes" and gives a clue on the pattern of words of a particular langauge.  It can be used for building applications such as,  Machine Translation, Text Summarization, Search systems etc.
+
+# Languages covered:
+
+| Languages          | ISO Code |
+|--------------------|----------|
+| Catalan            | ca       |
+| Danish             | da       |
+| Dutch              | nl       |
+| English            | en       |
+| French             | fr       |
+| German             | de       |
+| Greek              | el       |
+| Italian            | it       |
+| Japanese           | ja       |
+| Lithuanian         | lt       |
+| Macedonian         | mk       |
+| Norwegian (Bokmål) | nb       |
+| Polish             | pl       |
+| Portuguese         | pt       |
+| Russian            | ru       |
+| Spanish            | es       |
+
+```python
+def get_morph(self,
+             body)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`Responsemorph`](/firstlanguage_python/doc/models/responsemorph.html)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"value":{"input":{"text":"Let us begin the API development.","lang":"en"}}}')
+
+result = basic_api_controller.get_morph(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "Let": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "us": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "begin": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "the": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "API": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  "development": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  },
+  ".": {
+    "VerbForm": [
+      "Inf"
+    ],
+    "Case": [
+      "Acc"
+    ],
+    "Number": [
+      "Sing"
+    ],
+    "Person": [
+      "1"
+    ],
+    "PronType": [
+      "Art"
+    ],
+    "Definite": [
+      "Def"
+    ],
+    "NounType": [
+      "Prop"
+    ]
+  }
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Error output | [`ErrorsException`](/firstlanguage_python/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`ApiMorph426ErrorException`](/firstlanguage_python/doc/models/api-morph-426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
+
+# Get Postag
+
+# Parts of Speech Tagger : Defintion and it's usage
+
+Parts of Speech Tagger, which is shortly known as POS Tagger is a software that automatically finds the word classes, when a text input is given. The text input can be a word, a sentence or a set of sentences. The word classes are the grammatical categories such as, Noun, Verb, Adverb etc. The category assigned to each word is called as a tag. A set of tags, each indicating a grammatical category is called, "tagsets". POS tagging is a mandatory pre-processing for most of the Natural Language Processing Applications such as, Information Extraction, Information Retreival systems and Summary generation systems. A POS Tagger is a language-dependent software as the grammar rules will differ for every language. For instance, a word ending with "ing" might indicate a "Verb" in English but this will not be applicable for other languages.
+
+# Languages covered:
+
+| Languages          | ISO Code |
+|--------------------|----------|
+| Chinese            | zh       |
+| Dutch              | nl       |
+| English            | en       |
+| German             | de       |
+| Italian            | it       |
+| Lithuanian         | lt       |
+| Polish             | pl       |
+| Romanian           | ro       |
+| Tamil              | ta       |
+
+```python
+def get_postag(self,
+              body)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | `object` | Body, Required | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`List of Responsepo`](/firstlanguage_python/doc/models/responsepo.html)
+
+## Example Usage
+
+```python
+body = jsonpickle.decode('{"$$__case":0,"value":{"input":{"text":"Let us begin the API development.","lang":"en"}}}')
+
+result = basic_api_controller.get_postag(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+[
+  {
+    "originalText": "Let",
+    "postag": "VERB"
+  },
+  {
+    "originalText": "us",
+    "postag": "PRON"
+  },
+  {
+    "originalText": "begin",
+    "postag": "VERB"
+  },
+  {
+    "originalText": "the",
+    "postag": "DET"
+  },
+  {
+    "originalText": "API",
+    "postag": "PROPN"
+  },
+  {
+    "originalText": "development",
+    "postag": "NOUN"
+  },
+  {
+    "originalText": ".",
+    "postag": "PUNCT"
+  }
+]
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Error output | [`ErrorsException`](/firstlanguage_python/doc/models/errors-exception.html) |
+| 426 | Please use HTTPS protocol | [`ApiPostag426ErrorException`](/firstlanguage_python/doc/models/api-postag-426-error-exception.html) |
+| 429 | Too Many Requests | `APIException` |
+
diff --git a/doc/controllers/enterprise-only.md b/doc/controllers/enterprise-only.md
new file mode 100644
index 0000000..9d8c88b
--- /dev/null
+++ b/doc/controllers/enterprise-only.md
@@ -0,0 +1,61 @@
+# Enterprise Only
+
+```python
+enterprise_only_controller = client.enterprise_only
+```
+
+## Class Name
+
+`EnterpriseOnlyController`
+
+
+# Get QA Enterprise
+
+A Question Answering System retrieves the answer relevant to the question given by the user. A question answering system can be used for building a text based chatbots, search engines etc. Our question answering system  is mutilingual and supports 100 + languages. Please use ISO 639-2 2 digit language code  to get results. For example, use 'en' for English, 'ta' for Tamil, 'hi' for Hindi, 'fr' for French etc.
+
+For ISO code reference, please check the link https://www.loc.gov/standards/iso639-2/php/code_list.php
+
+For enterprise, the context for the questions will be stored in memory. The context can be read from wide range of file and any number of files.
+
+```python
+def get_qa_enterprise(self,
+                     body=None)
+```
+
+## Parameters
+
+| Parameter | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `body` | [`ApiQuestionRequest`](../../doc/models/api-question-request.md) | Body, Optional | Add a JSON Input as per the schema defined below |
+
+## Response Type
+
+[`ApiQuestionResponse`](../../doc/models/api-question-response.md)
+
+## Example Usage
+
+```python
+body = ApiQuestionRequest()
+body.input = Input10()
+body.input.question = 'Who is father of Arya Stark?'
+body.input.lang = 'en'
+
+result = enterprise_only_controller.get_qa_enterprise(body)
+```
+
+## Example Response *(as JSON)*
+
+```json
+{
+  "answer": "உப்பு, புளி, மிளகாய்"
+}
+```
+
+## Errors
+
+| HTTP Status Code | Error Description | Exception Class |
+|  --- | --- | --- |
+| 400 | Bad Request | [`ErrorsException`](../../doc/models/errors-exception.md) |
+| 426 | Please use HTTPS protocol | [`M426ErrorException`](../../doc/models/m426-error-exception.md) |
+| 429 | Too Many Requests | `APIException` |
+
diff --git a/doc/models/api-imagecaption-request.md b/doc/models/api-imagecaption-request.md
new file mode 100644
index 0000000..846cb9e
--- /dev/null
+++ b/doc/models/api-imagecaption-request.md
@@ -0,0 +1,23 @@
+
+# Api Imagecaption Request
+
+## Structure
+
+`ApiImagecaptionRequest`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input9`](../../doc/models/input-9.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "url": "url2"
+  }
+}
+```
+
diff --git a/doc/models/api-imagecaption-response.md b/doc/models/api-imagecaption-response.md
new file mode 100644
index 0000000..ae36c7a
--- /dev/null
+++ b/doc/models/api-imagecaption-response.md
@@ -0,0 +1,21 @@
+
+# Api Imagecaption Response
+
+## Structure
+
+`ApiImagecaptionResponse`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `generated_caption` | `string` | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "generated_caption": "generated_caption2"
+}
+```
+
diff --git a/doc/models/api-ner-request-1.md b/doc/models/api-ner-request-1.md
new file mode 100644
index 0000000..ecd3c62
--- /dev/null
+++ b/doc/models/api-ner-request-1.md
@@ -0,0 +1,25 @@
+
+# Api Ner Request 1
+
+## Structure
+
+`ApiNerRequest1`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input12`](../../doc/models/input-12.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "lang": "lang0",
+    "contentType": "contentType4",
+    "url": "url2"
+  }
+}
+```
+
diff --git a/doc/models/api-ner-request.md b/doc/models/api-ner-request.md
new file mode 100644
index 0000000..fd1e5b7
--- /dev/null
+++ b/doc/models/api-ner-request.md
@@ -0,0 +1,24 @@
+
+# Api Ner Request
+
+## Structure
+
+`ApiNerRequest`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input11`](../../doc/models/input-11.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "text": "text2",
+    "lang": "lang0"
+  }
+}
+```
+
diff --git a/doc/models/api-ner-response.md b/doc/models/api-ner-response.md
index a9a3681..f128c19 100644
--- a/doc/models/api-ner-response.md
+++ b/doc/models/api-ner-response.md
@@ -9,10 +9,10 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `entity_group` | `string` | Required | Entity group inferred.<br>**Constraints**: *Minimum Length*: `1` |
-| `word` | `string` | Required | Corresponding word<br>**Constraints**: *Minimum Length*: `1` |
-| `start` | `string` | Required | Start position of the entity in the given input.<br>**Constraints**: *Minimum Length*: `1` |
-| `end` | `string` | Required | Start position of the entity in the given input.<br>**Constraints**: *Minimum Length*: `1` |
+| `entity_group` | `string` | Required | Entity group inferred. |
+| `word` | `string` | Required | Corresponding word |
+| `start` | `string` | Required | Start position of the entity in the given input. |
+| `end` | `string` | Required | Start position of the entity in the given input. |
 
 ## Example (as JSON)
 
diff --git a/doc/models/api-qa-request-1.md b/doc/models/api-qa-request-1.md
new file mode 100644
index 0000000..1be7ade
--- /dev/null
+++ b/doc/models/api-qa-request-1.md
@@ -0,0 +1,26 @@
+
+# Api Qa Request 1
+
+## Structure
+
+`ApiQaRequest1`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input6`](../../doc/models/input-6.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "question": "question0",
+    "lang": "lang0",
+    "contentType": "contentType4",
+    "url": "url2"
+  }
+}
+```
+
diff --git a/doc/models/api-qa-request.md b/doc/models/api-qa-request.md
new file mode 100644
index 0000000..3491bd3
--- /dev/null
+++ b/doc/models/api-qa-request.md
@@ -0,0 +1,25 @@
+
+# Api Qa Request
+
+## Structure
+
+`ApiQaRequest`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input5`](../../doc/models/input-5.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "question": "question0",
+    "lang": "lang0",
+    "context": "context0"
+  }
+}
+```
+
diff --git a/doc/models/api-question-request.md b/doc/models/api-question-request.md
new file mode 100644
index 0000000..05ef9d2
--- /dev/null
+++ b/doc/models/api-question-request.md
@@ -0,0 +1,24 @@
+
+# Api Question Request
+
+## Structure
+
+`ApiQuestionRequest`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input10`](../../doc/models/input-10.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "question": "question0",
+    "lang": "lang0"
+  }
+}
+```
+
diff --git a/doc/models/api-question-response.md b/doc/models/api-question-response.md
new file mode 100644
index 0000000..905daa8
--- /dev/null
+++ b/doc/models/api-question-response.md
@@ -0,0 +1,21 @@
+
+# Api Question Response
+
+## Structure
+
+`ApiQuestionResponse`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `answer` | `string` | Required | Answer to the question. |
+
+## Example (as JSON)
+
+```json
+{
+  "answer": "answer4"
+}
+```
+
diff --git a/doc/models/api-summary-request-1.md b/doc/models/api-summary-request-1.md
new file mode 100644
index 0000000..2ec95ea
--- /dev/null
+++ b/doc/models/api-summary-request-1.md
@@ -0,0 +1,25 @@
+
+# Api Summary Request 1
+
+## Structure
+
+`ApiSummaryRequest1`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input14`](../../doc/models/input-14.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "lang": "lang0",
+    "contentType": "contentType4",
+    "url": "url2"
+  }
+}
+```
+
diff --git a/doc/models/api-summary-request.md b/doc/models/api-summary-request.md
new file mode 100644
index 0000000..c10a346
--- /dev/null
+++ b/doc/models/api-summary-request.md
@@ -0,0 +1,24 @@
+
+# Api Summary Request
+
+## Structure
+
+`ApiSummaryRequest`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input13`](../../doc/models/input-13.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "text": "text2",
+    "lang": "lang0"
+  }
+}
+```
+
diff --git a/doc/models/api-summary-response.md b/doc/models/api-summary-response.md
new file mode 100644
index 0000000..d10e6f6
--- /dev/null
+++ b/doc/models/api-summary-response.md
@@ -0,0 +1,21 @@
+
+# Api Summary Response
+
+## Structure
+
+`ApiSummaryResponse`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `summary` | `string` | Optional | - |
+
+## Example (as JSON)
+
+```json
+{
+  "summary": null
+}
+```
+
diff --git a/doc/models/api-tableqa-request-1.md b/doc/models/api-tableqa-request-1.md
new file mode 100644
index 0000000..0074976
--- /dev/null
+++ b/doc/models/api-tableqa-request-1.md
@@ -0,0 +1,29 @@
+
+# Api Tableqa Request 1
+
+## Structure
+
+`ApiTableqaRequest1`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input8`](../../doc/models/input-8.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "url": "url2",
+    "sendBackRows": false,
+    "questions": [
+      "questions3",
+      "questions4",
+      "questions5"
+    ]
+  }
+}
+```
+
diff --git a/doc/models/api-tableqa-request.md b/doc/models/api-tableqa-request.md
new file mode 100644
index 0000000..78d1e87
--- /dev/null
+++ b/doc/models/api-tableqa-request.md
@@ -0,0 +1,32 @@
+
+# Api Tableqa Request
+
+## Structure
+
+`ApiTableqaRequest`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input7`](../../doc/models/input-7.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "flattable": {
+      "key1": "val1",
+      "key2": "val2"
+    },
+    "sendBackRows": false,
+    "questions": [
+      "questions3",
+      "questions4",
+      "questions5"
+    ]
+  }
+}
+```
+
diff --git a/doc/models/api-tableqa-response.md b/doc/models/api-tableqa-response.md
new file mode 100644
index 0000000..21ae340
--- /dev/null
+++ b/doc/models/api-tableqa-response.md
@@ -0,0 +1,25 @@
+
+# Api Tableqa Response
+
+## Structure
+
+`ApiTableqaResponse`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `query` | `string` | Optional | Original Question |
+| `answer` | `List of string` | Optional | - |
+| `rows` | `List of string` | Optional | - |
+
+## Example (as JSON)
+
+```json
+{
+  "query": null,
+  "answer": null,
+  "rows": null
+}
+```
+
diff --git a/doc/models/api-translate-request-1.md b/doc/models/api-translate-request-1.md
new file mode 100644
index 0000000..2caedcb
--- /dev/null
+++ b/doc/models/api-translate-request-1.md
@@ -0,0 +1,26 @@
+
+# Api Translate Request 1
+
+## Structure
+
+`ApiTranslateRequest1`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input16`](../../doc/models/input-16.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "lang": "lang0",
+    "contentType": "contentType4",
+    "url": "url2",
+    "preserveFormat": "preserveFormat8"
+  }
+}
+```
+
diff --git a/doc/models/api-translate-request.md b/doc/models/api-translate-request.md
new file mode 100644
index 0000000..3885a01
--- /dev/null
+++ b/doc/models/api-translate-request.md
@@ -0,0 +1,24 @@
+
+# Api Translate Request
+
+## Structure
+
+`ApiTranslateRequest`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `input` | [`Input15`](../../doc/models/input-15.md) | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "input": {
+    "text": "text2",
+    "lang": "lang0"
+  }
+}
+```
+
diff --git a/doc/models/api-translate-response.md b/doc/models/api-translate-response.md
new file mode 100644
index 0000000..325d95a
--- /dev/null
+++ b/doc/models/api-translate-response.md
@@ -0,0 +1,21 @@
+
+# Api Translate Response
+
+## Structure
+
+`ApiTranslateResponse`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `generated_text` | `string` | Optional | - |
+
+## Example (as JSON)
+
+```json
+{
+  "generated_text": null
+}
+```
+
diff --git a/doc/models/errors-exception.md b/doc/models/errors-exception.md
index ff1263e..e35bc67 100644
--- a/doc/models/errors-exception.md
+++ b/doc/models/errors-exception.md
@@ -9,7 +9,7 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `errors` | [`List of Errors1`](/doc/models/errors-1.md) | Optional | - |
+| `errors` | [`List of Errors1`](../../doc/models/errors-1.md) | Optional | - |
 
 ## Example (as JSON)
 
diff --git a/doc/models/input-1.md b/doc/models/input-1.md
index 151f72c..d760736 100644
--- a/doc/models/input-1.md
+++ b/doc/models/input-1.md
@@ -1,7 +1,7 @@
 
 # Input 1
 
-Text for processing will be read from the given URL. Only HTML pages or text pages will be processed at this time.
+Text for processing will be read from the given URL.
 
 ## Structure
 
@@ -11,17 +11,17 @@ Text for processing will be read from the given URL. Only HTML pages or text pag
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `url` | `string` | Optional | URL where the content is hosted. |
-| `lang` | `string` | Optional | Allowed language code. Refer Allowed languages section. |
-| `content_type` | `string` | Optional | Allowed values or html or text. If html is specified all html tags and special characters will be stripped before processing. |
+| `url` | `string` | Required | URL where the content is hosted. |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+| `content_type` | `string` | Required | Allowed values are:html,plaintext, pdf, docx<br>If html is specified all html tags and special characters will be stripped before processing.<br>For PDF and docx, all text will be read. Scanned documents will not work. |
 
 ## Example (as JSON)
 
 ```json
 {
-  "url": null,
-  "lang": null,
-  "contentType": null
+  "url": "http://news.bbc.co.uk/2/hi/health/2284783.stm",
+  "lang": "en",
+  "contentType": "html"
 }
 ```
 
diff --git a/doc/models/input-10.md b/doc/models/input-10.md
new file mode 100644
index 0000000..42e9d77
--- /dev/null
+++ b/doc/models/input-10.md
@@ -0,0 +1,23 @@
+
+# Input 10
+
+## Structure
+
+`Input10`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `question` | `string` | Required | Question to be answered from the context loaded in memory |
+| `lang` | `string` | Required | Language of the question |
+
+## Example (as JSON)
+
+```json
+{
+  "question": "question8",
+  "lang": "lang2"
+}
+```
+
diff --git a/doc/models/input-11.md b/doc/models/input-11.md
new file mode 100644
index 0000000..055656f
--- /dev/null
+++ b/doc/models/input-11.md
@@ -0,0 +1,23 @@
+
+# Input 11
+
+## Structure
+
+`Input11`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `text` | `string` | Required | Named Entities will be marked from this text. Special characters will not be stripped. |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+
+## Example (as JSON)
+
+```json
+{
+  "text": "text0",
+  "lang": "lang2"
+}
+```
+
diff --git a/doc/models/input-12.md b/doc/models/input-12.md
new file mode 100644
index 0000000..cf5e27b
--- /dev/null
+++ b/doc/models/input-12.md
@@ -0,0 +1,25 @@
+
+# Input 12
+
+## Structure
+
+`Input12`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+| `content_type` | `string` | Required | Allowed values are:html,plaintext, pdf, docx<br>If html is specified all html tags and special characters will be stripped before processing.<br>For PDF and docx, all text will be read. Scanned documents will not work. |
+| `url` | `string` | Required | URL where the text for the NER task is stored. |
+
+## Example (as JSON)
+
+```json
+{
+  "lang": "lang2",
+  "contentType": "contentType6",
+  "url": "url4"
+}
+```
+
diff --git a/doc/models/input-13.md b/doc/models/input-13.md
new file mode 100644
index 0000000..366145d
--- /dev/null
+++ b/doc/models/input-13.md
@@ -0,0 +1,23 @@
+
+# Input 13
+
+## Structure
+
+`Input13`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `text` | `string` | Required | Text for which summary should be generated |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+
+## Example (as JSON)
+
+```json
+{
+  "text": "text0",
+  "lang": "lang2"
+}
+```
+
diff --git a/doc/models/input-14.md b/doc/models/input-14.md
new file mode 100644
index 0000000..4233866
--- /dev/null
+++ b/doc/models/input-14.md
@@ -0,0 +1,25 @@
+
+# Input 14
+
+## Structure
+
+`Input14`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+| `content_type` | `string` | Required | Allowed values are:html,plaintext, pdf, docx<br>If html is specified all html tags and special characters will be stripped before processing.<br>For PDF and docx, all text will be read. Scanned documents will not work. |
+| `url` | `string` | Required | Text from this URL will be read and a summary generated |
+
+## Example (as JSON)
+
+```json
+{
+  "lang": "lang2",
+  "contentType": "contentType6",
+  "url": "url4"
+}
+```
+
diff --git a/doc/models/input-15.md b/doc/models/input-15.md
new file mode 100644
index 0000000..9e24bac
--- /dev/null
+++ b/doc/models/input-15.md
@@ -0,0 +1,23 @@
+
+# Input 15
+
+## Structure
+
+`Input15`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `text` | `string` | Required | Text for which translation should be generated |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+
+## Example (as JSON)
+
+```json
+{
+  "text": "text0",
+  "lang": "lang2"
+}
+```
+
diff --git a/doc/models/input-16.md b/doc/models/input-16.md
new file mode 100644
index 0000000..425d57c
--- /dev/null
+++ b/doc/models/input-16.md
@@ -0,0 +1,27 @@
+
+# Input 16
+
+## Structure
+
+`Input16`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+| `content_type` | `string` | Required | Allowed values are:html,plaintext, pdf, docx<br>If html is specified all html tags and special characters will be stripped before processing.<br>For PDF and docx, all text will be read. Scanned documents will not work. |
+| `url` | `string` | Required | Text from this URL will be read and a translation generated |
+| `preserve_format` | `string` | Required | Accepted values are true, false. |
+
+## Example (as JSON)
+
+```json
+{
+  "lang": "lang2",
+  "contentType": "contentType6",
+  "url": "url4",
+  "preserveFormat": "preserveFormat0"
+}
+```
+
diff --git a/doc/models/input-3.md b/doc/models/input-3.md
index c443b60..b5fa72c 100644
--- a/doc/models/input-3.md
+++ b/doc/models/input-3.md
@@ -9,19 +9,22 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `url` | `string` | Optional | URL where the content is hosted. |
-| `lang` | `string` | Optional | Allowed language code. Refer Allowed languages section. |
-| `content_type` | `string` | Optional | Allowed values or html or text. If html is specified all html tags and special characters will be stripped before processing. |
-| `labels` | `List of object` | Optional | Labels to classify |
+| `url` | `string` | Required | URL where the content is hosted. |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+| `content_type` | `string` | Required | Allowed values are:html,plaintext, pdf, docx<br>If html is specified all html tags and special characters will be stripped before processing.<br>For PDF and docx, all text will be read. Scanned documents will not work. |
+| `labels` | `List of object` | Required | Labels to classify |
 
 ## Example (as JSON)
 
 ```json
 {
-  "url": null,
-  "lang": null,
-  "contentType": null,
-  "labels": null
+  "url": "http://news.bbc.co.uk/2/hi/health/2284783.stm",
+  "lang": "en",
+  "contentType": "html",
+  "labels": [
+    "good",
+    "bad"
+  ]
 }
 ```
 
diff --git a/doc/models/input-5.md b/doc/models/input-5.md
new file mode 100644
index 0000000..c4a57e2
--- /dev/null
+++ b/doc/models/input-5.md
@@ -0,0 +1,25 @@
+
+# Input 5
+
+## Structure
+
+`Input5`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `question` | `string` | Required | Question to be answered from the context given. Only One question can be asked at a time. Special characters will not be stripped. |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+| `context` | `string` | Required | Sentence or a paragraph. Special characters will not be stripped. Maximum size limit is ~5KB of context text. |
+
+## Example (as JSON)
+
+```json
+{
+  "question": "question8",
+  "lang": "lang2",
+  "context": "context2"
+}
+```
+
diff --git a/doc/models/input-6.md b/doc/models/input-6.md
new file mode 100644
index 0000000..c6f331a
--- /dev/null
+++ b/doc/models/input-6.md
@@ -0,0 +1,27 @@
+
+# Input 6
+
+## Structure
+
+`Input6`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `question` | `string` | Required | Question to be answered from the context given. Only One question can be asked at a time. Special characters will not be stripped. |
+| `lang` | `string` | Required | Allowed language code. Refer Allowed languages section. |
+| `content_type` | `string` | Required | Allowed values are:html,plaintext, pdf, docx<br>If html is specified all html tags and special characters will be stripped before processing.<br>For PDF and docx, all text will be read. Scanned documents will not work. |
+| `url` | `string` | Required | URL where the context for the question is stored. |
+
+## Example (as JSON)
+
+```json
+{
+  "question": "question8",
+  "lang": "lang2",
+  "contentType": "contentType6",
+  "url": "url4"
+}
+```
+
diff --git a/doc/models/input-7.md b/doc/models/input-7.md
new file mode 100644
index 0000000..c34172f
--- /dev/null
+++ b/doc/models/input-7.md
@@ -0,0 +1,30 @@
+
+# Input 7
+
+## Structure
+
+`Input7`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `flattable` | `object` | Required | Table if JSON format |
+| `send_back_rows` | `bool` | Required | Send back original rows from which the answer was extracted. Input either true or false. |
+| `questions` | `List of string` | Required | Array of questions. |
+
+## Example (as JSON)
+
+```json
+{
+  "flattable": {
+    "key1": "val1",
+    "key2": "val2"
+  },
+  "sendBackRows": false,
+  "questions": [
+    "questions1"
+  ]
+}
+```
+
diff --git a/doc/models/input-8.md b/doc/models/input-8.md
new file mode 100644
index 0000000..aa7795e
--- /dev/null
+++ b/doc/models/input-8.md
@@ -0,0 +1,27 @@
+
+# Input 8
+
+## Structure
+
+`Input8`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `url` | `string` | Required | URL of the CSV file. |
+| `send_back_rows` | `bool` | Required | Send back original rows from which the answer was extracted. Input either true or false. |
+| `questions` | `List of string` | Required | Array of questions |
+
+## Example (as JSON)
+
+```json
+{
+  "url": "url4",
+  "sendBackRows": false,
+  "questions": [
+    "questions1"
+  ]
+}
+```
+
diff --git a/doc/models/input-9.md b/doc/models/input-9.md
new file mode 100644
index 0000000..5750d83
--- /dev/null
+++ b/doc/models/input-9.md
@@ -0,0 +1,21 @@
+
+# Input 9
+
+## Structure
+
+`Input9`
+
+## Fields
+
+| Name | Type | Tags | Description |
+|  --- | --- | --- | --- |
+| `url` | `string` | Required | - |
+
+## Example (as JSON)
+
+```json
+{
+  "url": "url4"
+}
+```
+
diff --git a/doc/models/orignal-string.md b/doc/models/orignal-string.md
index 5e27a8d..f41ecdb 100644
--- a/doc/models/orignal-string.md
+++ b/doc/models/orignal-string.md
@@ -1,9 +1,9 @@
 
-# Orignal String
+# original String
 
 ## Structure
 
-`OrignalString`
+`originalString`
 
 ## Fields
 
diff --git a/doc/models/responselemma.md b/doc/models/responselemma.md
index 9c25d03..02db39d 100644
--- a/doc/models/responselemma.md
+++ b/doc/models/responselemma.md
@@ -9,14 +9,14 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `orginal_text` | `string` | Optional | - |
+| `original_text` | `string` | Optional | - |
 | `lemmatized` | `string` | Optional | - |
 
 ## Example (as JSON)
 
 ```json
 {
-  "orginalText": null,
+  "originalText": null,
   "lemmatized": null
 }
 ```
diff --git a/doc/models/responsemorph.md b/doc/models/responsemorph.md
index 2189224..d9d58dc 100644
--- a/doc/models/responsemorph.md
+++ b/doc/models/responsemorph.md
@@ -9,13 +9,13 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `orignal_string` | [`OrignalString`](/doc/models/orignal-string.md) | Optional | - |
+| `original_string` | [`originalString`](../../doc/models/original-string.md) | Optional | - |
 
 ## Example (as JSON)
 
 ```json
 {
-  "orignalString": null
+  "originalString": null
 }
 ```
 
diff --git a/doc/models/responsepo.md b/doc/models/responsepo.md
index 8ce2c79..120abf8 100644
--- a/doc/models/responsepo.md
+++ b/doc/models/responsepo.md
@@ -9,14 +9,14 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `orginal_text` | `string` | Optional | - |
+| `original_text` | `string` | Optional | - |
 | `postag` | `string` | Optional | - |
 
 ## Example (as JSON)
 
 ```json
 {
-  "orginalText": null,
+  "originalText": null,
   "postag": null
 }
 ```
diff --git a/doc/models/responsestem.md b/doc/models/responsestem.md
index e8e0e7d..db03414 100644
--- a/doc/models/responsestem.md
+++ b/doc/models/responsestem.md
@@ -9,14 +9,14 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `orginal_text` | `string` | Optional | - |
+| `original_text` | `string` | Optional | - |
 | `stem` | `string` | Optional | - |
 
 ## Example (as JSON)
 
 ```json
 {
-  "orginalText": null,
+  "originalText": null,
   "stem": null
 }
 ```
diff --git a/doc/models/text-input-classify.md b/doc/models/text-input-classify.md
index bf63ad5..4947855 100644
--- a/doc/models/text-input-classify.md
+++ b/doc/models/text-input-classify.md
@@ -9,13 +9,20 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `input` | [`Input2`](/doc/models/input-2.md) | Optional | - |
+| `input` | [`Input2`](../../doc/models/input-2.md) | Required | - |
 
 ## Example (as JSON)
 
 ```json
 {
-  "input": null
+  "input": {
+    "context": "Let us begin the API development.",
+    "lang": "en",
+    "labels": [
+      "good",
+      "bad"
+    ]
+  }
 }
 ```
 
diff --git a/doc/models/text-input-tamil.md b/doc/models/text-input-tamil.md
index 1e5801f..6e3e77d 100644
--- a/doc/models/text-input-tamil.md
+++ b/doc/models/text-input-tamil.md
@@ -9,13 +9,16 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `input` | [`Input4`](/doc/models/input-4.md) | Optional | - |
+| `input` | [`Input4`](../../doc/models/input-4.md) | Required | - |
 
 ## Example (as JSON)
 
 ```json
 {
-  "input": null
+  "input": {
+    "text": "அவள் வேகமாக ஓடினாள்",
+    "lang": "ta"
+  }
 }
 ```
 
diff --git a/doc/models/text-input.md b/doc/models/text-input.md
index aec2aa3..bd604d1 100644
--- a/doc/models/text-input.md
+++ b/doc/models/text-input.md
@@ -9,13 +9,16 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `input` | [`Input`](/doc/models/input.md) | Optional | Direct Text Input |
+| `input` | [`Input`](../../doc/models/input.md) | Required | Direct Text Input |
 
 ## Example (as JSON)
 
 ```json
 {
-  "input": null
+  "input": {
+    "text": "Let us begin the API development.",
+    "lang": "en"
+  }
 }
 ```
 
diff --git a/doc/models/url-input-classify.md b/doc/models/url-input-classify.md
index d977ac3..1c96b4a 100644
--- a/doc/models/url-input-classify.md
+++ b/doc/models/url-input-classify.md
@@ -9,13 +9,21 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `input` | [`Input3`](/doc/models/input-3.md) | Optional | - |
+| `input` | [`Input3`](../../doc/models/input-3.md) | Required | - |
 
 ## Example (as JSON)
 
 ```json
 {
-  "input": null
+  "input": {
+    "url": "http://news.bbc.co.uk/2/hi/health/2284783.stm",
+    "lang": "en",
+    "contentType": "html",
+    "labels": [
+      "good",
+      "bad"
+    ]
+  }
 }
 ```
 
diff --git a/doc/models/url-input.md b/doc/models/url-input.md
index 6482217..f27ac1f 100644
--- a/doc/models/url-input.md
+++ b/doc/models/url-input.md
@@ -9,13 +9,17 @@
 
 | Name | Type | Tags | Description |
 |  --- | --- | --- | --- |
-| `input` | [`Input1`](/doc/models/input-1.md) | Optional | Text for processing will be read from the given URL. Only HTML pages or text pages will be processed at this time. |
+| `input` | [`Input1`](../../doc/models/input-1.md) | Required | Text for processing will be read from the given URL. |
 
 ## Example (as JSON)
 
 ```json
 {
-  "input": null
+  "input": {
+    "url": "http://news.bbc.co.uk/2/hi/health/2284783.stm",
+    "lang": "en",
+    "contentType": "html"
+  }
 }
 ```
 
diff --git a/examples/Advanced/example_Classify.py b/examples/Advanced/example_Classify.py
new file mode 100644
index 0000000..54a23c9
--- /dev/null
+++ b/examples/Advanced/example_Classify.py
@@ -0,0 +1,41 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#Create the input string and prep it to pass it to the API
+reqbody='{"input":{"text":"Smiling makes everyone happy","lang":"en", "labels":["positive","negative"]} }'
+body = jsonpickle.decode(reqbody)
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+result = adv_api_controller.get_classification(body)
+
+print("Labels: ",result.labels)
+print("Scores: ",result.scores)
+
+
+#From URL:
+reqbody = '{"input":{"lang":"","url": "", "contentType":""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://drive.google.com/uc?id=1U8z6TUkuGOfhphEYnTuS6LJe3NWdGzFC", "utf-8").decode("unicode_escape") 
+
+body["input"]["lang"] = "en"
+body["input"]["url"] = decoded_url
+body["input"]["contentType"] = "pdf"
+body["input"]["labels"] = ["positive","negative"]
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+result = adv_api_controller.get_classification(body)
+
+print("Labels: ",result.labels)
+print("Scores: ",result.scores)
\ No newline at end of file
diff --git a/examples/Advanced/example_ImageCaption.py b/examples/Advanced/example_ImageCaption.py
new file mode 100644
index 0000000..0a3194a
--- /dev/null
+++ b/examples/Advanced/example_ImageCaption.py
@@ -0,0 +1,25 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#From URL:
+reqbody = '{"input":{"url": ""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://i.redd.it/v1fvin01ynv51.jpg", "utf-8").decode("unicode_escape") 
+
+
+body["input"]["url"] = decoded_url
+
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+result = adv_api_controller.get_image_caption(body)
+
+print("Caption: ",result.generated_caption)
diff --git a/examples/Advanced/example_NER.py b/examples/Advanced/example_NER.py
new file mode 100644
index 0000000..0ffb832
--- /dev/null
+++ b/examples/Advanced/example_NER.py
@@ -0,0 +1,46 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#Create the input string and prep it to pass it to the API
+reqbody='{"input":{"text":"FirstLanguage is a NLP company","lang":"en"} }'
+body = jsonpickle.decode(reqbody)
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+res = adv_api_controller.get_ner(body)
+
+for result in res:
+    print("Word: ",result.word)
+    print("Start index: ",result.start)
+    print("End index: ",result.end)
+    print("Entity Group: ",result.entity_group)
+
+#From URL:
+reqbody = '{"input":{"lang":"","url": "", "contentType":""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://drive.google.com/uc?id=1U8z6TUkuGOfhphEYnTuS6LJe3NWdGzFC", "utf-8").decode("unicode_escape") 
+
+body["input"]["lang"] = "en"
+body["input"]["url"] = decoded_url
+body["input"]["contentType"] = "pdf"
+
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+res = adv_api_controller.get_ner(body)
+
+for result in res:
+    print("Word: ",result.word)
+    print("Start index: ",result.start)
+    print("End index: ",result.end)
+    print("Entity Group: ",result.entity_group)
\ No newline at end of file
diff --git a/examples/Advanced/example_QA.py b/examples/Advanced/example_QA.py
new file mode 100644
index 0000000..1b283a2
--- /dev/null
+++ b/examples/Advanced/example_QA.py
@@ -0,0 +1,45 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#Create the input string and prep it to pass it to the API
+reqbody='{"input":{"context":"உப்பு, புளி, மிளகாய் மூன்றும் எப்போதும் ஒன்றாகவே இருக்கும். ஒருநாள், “குழம்பிற்கு யார் முக்கியம்? நீயா! நானா!” என்று சண்டை போட்டன. மூன்று பேரும் தனிதனியாகச் சென்று குழம்பில் சேரலாம் என்று முடிவு செய்தன. முதல் நாள், உப்பு மட்டும் குழம்பில் சேர்ந்து கொண்டது. “ஆ! ஒரே உப்பு! வாயில் வைக்க முடியவில்லை!” என்று எல்லோரும் கத்தினார்கள்","lang":"ta","question": "எவை மூன்றும் எப்போதும் ஒன்றாகவே இருக்கும்?"} }'
+body = jsonpickle.decode(reqbody)
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+result = adv_api_controller.get_qa(body)
+
+print("Score: ",result.score)
+print("Start index of the answer in the context: ",result.start)
+print("End index of the answer in the context: ",result.end)
+print("Answer: ",result.answer)
+
+
+#From URL:
+reqbody = '{"input":{"lang":"","url": "", "contentType":""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://docs.google.com/document/d/1p8ER__mGPlu59zCrqH1PxNNao92qBsq-/export?format=docx", "utf-8").decode("unicode_escape") 
+
+body["input"]["lang"] = "en"
+body["input"]["url"] = decoded_url
+body["input"]["contentType"] = "docx"
+body["input"]["question"] = ["What is FirstLanguage's motto?"]
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+result = adv_api_controller.get_qa(body)
+
+print("Score: ",result.score)
+print("Start index of the answer in the context: ",result.start)
+print("End index of the answer in the context: ",result.end)
+print("Answer: ",result.answer)
\ No newline at end of file
diff --git a/examples/Advanced/example_Summary.py b/examples/Advanced/example_Summary.py
new file mode 100644
index 0000000..50f637e
--- /dev/null
+++ b/examples/Advanced/example_Summary.py
@@ -0,0 +1,47 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+# Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+# Create the input string and prep it to pass it to the API
+reqbody = '{"input":{"text":"We at FirstLanguage Technologies build state-of-the-art NLP APIsolutions for your\
+     business at lowest price in the market. FirstLanguageTechnologies was founded in the year 2021 with a mission\
+          to spread NLP technology across the world. NLP for the masses is our motto. We provide API services which\
+               are simple to use, easy to integrate and can be understood very easily by anyone.\
+                    FirstLanguage provides basics APIssuch as, stemmer, POS Tagger, Morphological Analyzer.\
+                         and Lemmatizer. The advanced APIs provided by FirstLanguage are,Question Answering,\
+                              Table Question Answering, Summarization and Machine Translation. \
+                              All these APIs are built using state-of-the art deeplearning models fine tuned by us \
+                                  and works for 100 plus languages.","lang":"en"} }'
+body = jsonpickle.decode(reqbody)
+
+# Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+# Call the corresponding API
+res = adv_api_controller.get_summary(body)
+
+print(res.summary)
+
+# From URL:
+reqbody = '{"input":{"lang":"","url": "", "contentType":""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://docs.google.com/document/d/1p8ER__mGPlu59zCrqH1PxNNao92qBsq-/export?format=docx",
+                    "utf-8").decode("unicode_escape")
+
+body["input"]["lang"] = "en"
+body["input"]["url"] = decoded_url
+body["input"]["contentType"] = "docx"
+
+
+# Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+# Call the corresponding API
+res = adv_api_controller.get_summary(body)
+
+print(res.summary)
diff --git a/examples/Advanced/example_TableQA.py b/examples/Advanced/example_TableQA.py
new file mode 100644
index 0000000..f6ed6c6
--- /dev/null
+++ b/examples/Advanced/example_TableQA.py
@@ -0,0 +1,44 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#Create the input string and prep it to pass it to the API
+reqbody='{"input":{"flattable":{"Cities":["Paris, France","London, England","Lyon, France"],"Inhabitants":["2.161","8.982","0.513"]},"sendBackRows":false,"questions":["How many inhabitants in France","How Many inhabitants in England"]} }'
+body = jsonpickle.decode(reqbody)
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+result = adv_api_controller.get_table_qa(body)
+
+for item in result:
+    print("Query: ",item.query)
+    print("Answers: ",item.answer)
+   
+
+
+
+#From URL:
+reqbody = '{"input":{"questions":"","url": "","sendBackRows":"false"} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://drive.google.com/uc?id=1IpBFNs4FlRRbDzL_XPtmGHou_Rvc5Mvq", "utf-8").decode("unicode_escape") 
+
+
+body["input"]["url"] = decoded_url
+body["input"]["questions"] = ["How many inhabitants in France"]
+
+#Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+#Call the corresponding API
+result = adv_api_controller.get_table_qa(body)
+
+for item in result:
+    print("Query: ",item.query)
+    print("Answers: ",item.answer)
diff --git a/examples/Advanced/example_Translation.py b/examples/Advanced/example_Translation.py
new file mode 100644
index 0000000..cf795ff
--- /dev/null
+++ b/examples/Advanced/example_Translation.py
@@ -0,0 +1,47 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+import base64
+import io
+
+# Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+# Create the input string and prep it to pass it to the API
+reqbody = '{"input":{"text":"Today is a good day","lang":"ta"} }'
+
+body = jsonpickle.decode(reqbody)
+
+# Initialize the corresponding controller Basic or Advacned
+adv_api_controller = client.advanced_api
+
+# Call the corresponding API
+res = adv_api_controller.get_translate(body)
+
+print(res.generated_text)
+
+# From URL:
+#Prepare input
+reqbody='{"input":{"lang":"ja","url": "https://drive.google.com/uc?id=1U8z6TUkuGOfhphEYnTuS6LJe3NWdGzFC", "contentType":"pdf","preserveFormat":"true"} }'
+body = jsonpickle.decode(reqbody)
+
+# Initialize the corresponding controller Basic or Advacned
+advanced_api_controller = client.advanced_api
+
+
+# Call the corresponding API
+result = advanced_api_controller.get_translate(body)
+
+if(body['input']['contentType'] == 'docx'):
+     with open('output.docx', 'w') as f:
+          f.write(result.text)
+     f.close()
+     
+if(body['input']['contentType'] == 'pdf'):
+     with open('output.pdf', 'wb') as f:
+          f.write(result.text)
+     f.close()
+print("File saved to disk")
+
diff --git a/examples/Basic/example_Lemma.py b/examples/Basic/example_Lemma.py
new file mode 100644
index 0000000..c25ae7b
--- /dev/null
+++ b/examples/Basic/example_Lemma.py
@@ -0,0 +1,44 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#Create the input string and prep it to pass it to the API
+reqbody='{"input":{"text":"Smiling makes everyone happy","lang":"en"} }'
+body = jsonpickle.decode(reqbody)
+
+#Initialize the corresponding controller Basic or Advacned
+basic_api_controller = client.basic_api
+
+#Call the corresponding API
+result = basic_api_controller.get_lemma(body)
+
+#Parse the result
+for res in result:
+  print("Original Text passed: "+res.original_text)
+  print("Lemmatized result: "+res.lemmatized)
+
+
+#From URL:
+reqbody = '{"input":{"lang":"","url": "", "contentType":""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://drive.google.com/uc?id=1U8z6TUkuGOfhphEYnTuS6LJe3NWdGzFC", "utf-8").decode("unicode_escape") 
+
+body["input"]["lang"] = "en"
+body["input"]["url"] = decoded_url
+body["input"]["contentType"] = "pdf"
+
+#Initialize the corresponding controller Basic or Advacned
+basic_api_controller = client.basic_api
+
+#Call the corresponding API
+result = basic_api_controller.get_lemma(body)
+
+#Parse the result
+for res in result:
+  print("Original Text passed: "+res.original_text)
+  print("Lemmatized result: "+res.lemmatized)
\ No newline at end of file
diff --git a/examples/Basic/example_Morph.py b/examples/Basic/example_Morph.py
new file mode 100644
index 0000000..0a10633
--- /dev/null
+++ b/examples/Basic/example_Morph.py
@@ -0,0 +1,61 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#Create the input string and prep it to pass it to the API
+reqbody='{"input":{"text":"Smiling makes everyone happy","lang":"en"} }'
+body = jsonpickle.decode(reqbody)
+
+#Initialize the corresponding controller Basic or Advacned
+basic_api_controller = client.basic_api
+
+#Call the corresponding API
+result = basic_api_controller.get_morph(body)
+morph = result.original_string
+#Parse the result
+print(morph)
+morphDict = {"originalText": [], "morphFeatures": []}
+for key in morph:  
+        morphDict["originalText"].append(str(key))
+        value=""
+        for items in morph[key]:
+            if value != "":
+                value += "|"
+            value += str(items)+"="+str(morph[key][items][0])        
+        morphDict["morphFeatures"].append(value)     
+
+print(morphDict)
+
+#From URL:
+reqbody = '{"input":{"lang":"","url": "", "contentType":""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://drive.google.com/uc?id=1U8z6TUkuGOfhphEYnTuS6LJe3NWdGzFC", "utf-8").decode("unicode_escape") 
+
+body["input"]["lang"] = "en"
+body["input"]["url"] = decoded_url
+body["input"]["contentType"] = "pdf"
+
+#Initialize the corresponding controller Basic or Advacned
+basic_api_controller = client.basic_api
+
+#Call the corresponding API
+result = basic_api_controller.get_morph(body)
+morph = result.original_string
+#Parse the result
+print(morph)
+morphDict = {"originalText": [], "morphFeatures": []}
+for key in morph:  
+        morphDict["originalText"].append(str(key))
+        value=""
+        for items in morph[key]:
+            if value != "":
+                value += "|"
+            value += str(items)+"="+str(morph[key][items][0])        
+        morphDict["morphFeatures"].append(value)     
+
+print(morphDict)
diff --git a/examples/Basic/example_POSTag.py b/examples/Basic/example_POSTag.py
new file mode 100644
index 0000000..5448ab8
--- /dev/null
+++ b/examples/Basic/example_POSTag.py
@@ -0,0 +1,43 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#Create the input string and prep it to pass it to the API
+reqbody='{"input":{"text":"FirstLanguage is a NLP Company","lang":"en"} }'
+body = jsonpickle.decode(reqbody)
+
+#Initialize the corresponding controller Basic or Advacned
+basic_api_controller = client.basic_api
+
+#Call the corresponding API
+result = basic_api_controller.get_postag(body)
+
+#Parse the result
+for res in result:
+  print("Original Text passed: "+res.original_text)
+  print("POSTag: "+res.postag)
+
+#From URL:
+reqbody = '{"input":{"lang":"","url": "", "contentType":""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://drive.google.com/uc?id=1U8z6TUkuGOfhphEYnTuS6LJe3NWdGzFC", "utf-8").decode("unicode_escape") 
+
+body["input"]["lang"] = "en"
+body["input"]["url"] = decoded_url
+body["input"]["contentType"] = "pdf"
+
+#Initialize the corresponding controller Basic or Advacned
+basic_api_controller = client.basic_api
+
+#Call the corresponding API
+result = basic_api_controller.get_postag(body)
+
+#Parse the result
+for res in result:
+  print("Original Text passed: "+res.original_text)
+  print("POSTag: "+res.postag)
\ No newline at end of file
diff --git a/examples/Basic/example_Stemmer.py b/examples/Basic/example_Stemmer.py
new file mode 100644
index 0000000..2f73743
--- /dev/null
+++ b/examples/Basic/example_Stemmer.py
@@ -0,0 +1,44 @@
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+#Init client with apiKey. Environment will always be set to PRODUCTION for now.
+client = Client(
+    apikey='<Your_API_Key>',
+    environment=Environment.PRODUCTION,)
+
+#Create the input string and prep it to pass it to the API
+reqbody='{"input":{"text":"அவள் வேகமாக ஓடினாள்","lang":"ta"} }'
+body = jsonpickle.decode(reqbody)
+
+#Initialize the corresponding controller Basic or Advacned
+basic_api_controller = client.basic_api
+
+#Call the corresponding API
+result = basic_api_controller.get_stemmer(body)
+
+#Parse the result
+for res in result:
+  print("Original Text passed: "+res.original_text)
+  print("Stemmed result: "+res.stem)
+
+
+#From URL:
+reqbody = '{"input":{"lang":"","url": "", "contentType":""} }'
+body = jsonpickle.decode(reqbody)
+decoded_url = bytes("https://drive.google.com/uc?id=1U8z6TUkuGOfhphEYnTuS6LJe3NWdGzFC", "utf-8").decode("unicode_escape") 
+
+body["input"]["lang"] = "en"
+body["input"]["url"] = decoded_url
+body["input"]["contentType"] = "pdf"
+
+#Initialize the corresponding controller Basic or Advacned
+basic_api_controller = client.basic_api
+
+#Call the corresponding API
+result = basic_api_controller.get_stemmer(body)
+
+#Parse the result
+for res in result:
+  print("Original Text passed: "+res.original_text)
+  print("Stemmed result: "+res.stem)
\ No newline at end of file
diff --git a/firstlanguage_python.egg-info/PKG-INFO b/firstlanguage_python.egg-info/PKG-INFO
new file mode 100644
index 0000000..cbe3f45
--- /dev/null
+++ b/firstlanguage_python.egg-info/PKG-INFO
@@ -0,0 +1,144 @@
+Metadata-Version: 2.1
+Name: firstlanguage-python
+Version: 2.4
+Summary: Python client library for FirstLanguage API
+Home-page: https://www.firstlanguage.in/contactus
+Author: FirstLanguage
+Author-email: info@firstlanguage.in
+License: UNKNOWN
+Download-URL: https://github.com/FirstLanguage/firstlanguage_python/archive/refs/tags/v2.4.tar.gz
+Description: 
+        # Getting Started with FirstLanguage API
+        
+        ## Introduction
+        
+        Collection of NLP APIs to help developers. We have grouped the APIs under Basic and Advanced. Basic APIs cover all basic text operations like POSTag, Stemmer etc and Advanced cover all the APIs like QA, translation etc.
+        
+        ### OpenAPI Specification
+        
+        This API is documented in **OpenAPI v3.0 format**.
+        In addition to standard
+        OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md).
+        
+        ## Building
+        
+        You must have Python `3 >=3.7, <= 3.9` installed on your system to install and run this SDK. This SDK package depends on other Python packages like nose, jsonpickle etc. These dependencies are defined in the `requirements.txt` file that comes with the SDK. To resolve these dependencies, you can use the PIP Dependency manager. Install it by following steps at [https://pip.pypa.io/en/stable/installing/](https://pip.pypa.io/en/stable/installing/).
+        
+        Python and PIP executables should be defined in your PATH. Open command prompt and type `pip --version`. This should display the version of the PIP Dependency Manager installed if your installation was successful and the paths are properly defined.
+        
+        * Using command line, navigate to the directory containing the generated files (including `requirements.txt`) for the SDK.
+        * Run the command `pip install -r requirements.txt`. This should install all the required dependencies.
+        
+        ![Building SDK - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&step=installDependencies)
+        
+        ## Installation
+        
+        The following section explains how to use the firstlanguage_python library in a new project.
+        
+        ### 1. Open Project in an IDE
+        
+        Open up a Python IDE like PyCharm. The basic workflow presented here is also applicable if you prefer using a different editor or IDE.
+        
+        ![Open project in PyCharm - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&step=pyCharm)
+        
+        Click on `Open` in PyCharm to browse to your generated SDK directory and then click `OK`.
+        
+        ![Open project in PyCharm - Step 2](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&step=openProject0)
+        
+        The project files will be displayed in the side bar as follows:
+        
+        ![Open project in PyCharm - Step 3](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&step=openProject1)
+        
+        ### 2. Add a new Test Project
+        
+        Create a new directory by right clicking on the solution name as shown below:
+        
+        ![Add a new project in PyCharm - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&step=createDirectory)
+        
+        Name the directory as "test".
+        
+        ![Add a new project in PyCharm - Step 2](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&step=nameDirectory)
+        
+        Add a python file to this project.
+        
+        ![Add a new project in PyCharm - Step 3](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&step=createFile)
+        
+        Name it "testSDK".
+        
+        ![Add a new project in PyCharm - Step 4](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&step=nameFile)
+        
+        In your python file you will be required to import the generated python library using the following code lines
+        
+        ```python
+        from firstlanguage_python.firstlanguage_python_client import FirstlanguageapiClient
+        ```
+        
+        ![Add a new project in PyCharm - Step 5](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&libraryName=firstlanguage_python.firstlanguage_python_client&className=FirstlanguageapiClient&step=projectFiles)
+        
+        After this you can write code to instantiate an API client object, get a controller object and  make API calls. Sample code is given in the subsequent sections.
+        
+        ### 3. Run the Test Project
+        
+        To run the file within your test project, right click on your Python file inside your Test project and click on `Run`
+        
+        ![Run Test Project - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguage_python&libraryName=firstlanguage_python.firstlanguage_python_client&className=FirstlanguageapiClient&step=runProject)
+        
+        ## Test the SDK
+        
+        You can test the generated SDK and the server with test cases. `unittest` is used as the testing framework and `nose` is used as the test runner. You can run the tests as follows:
+        
+        Navigate to the root directory of the SDK and run the following commands
+        
+        ```
+        pip install -r test-requirements.txt
+        nosetests
+        ```
+        
+        ## Initialize the API Client
+        
+        **_Note:_** Documentation for the client can be found [here.](/doc/client.md)
+        
+        The following parameters are configurable for the API Client:
+        
+        | Parameter | Type | Description |
+        |  --- | --- | --- |
+        | `http_client_instance` | `HttpClient` | The Http Client passed from the sdk user for making requests |
+        | `override_http_client_configuration` | `bool` | The value which determines to override properties of the passed Http Client from the sdk user |
+        | `timeout` | `float` | The value to use for connection timeout. <br> **Default: 60** |
+        | `max_retries` | `int` | The number of times to retry an endpoint call if it fails. <br> **Default: 0** |
+        | `backoff_factor` | `float` | A backoff factor to apply between attempts after the second try. <br> **Default: 2** |
+        | `retry_statuses` | `Array of int` | The http statuses on which retry is to be done. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
+        | `retry_methods` | `Array of string` | The http methods on which retry is to be done. <br> **Default: ['GET', 'PUT']** |
+        | `apikey` | `string` |  |
+        
+        The API client can be initialized as follows:
+        
+        ```python
+        from firstlanguage_python.firstlanguage_python_client import FirstlanguageapiClient
+        from firstlanguage_python.configuration import Environment
+        
+        client = FirstlanguageapiClient(
+            apikey='apikey',
+            environment=Environment.PRODUCTION,)
+        ```
+        
+        ## Authorization
+        
+        This API uses `Custom Header Signature`.
+        
+        ## List of APIs
+        
+        * [Basic AP Is](/doc/controllers/basic-ap-is.md)
+        * [Advanced AP Is](/doc/controllers/advanced-ap-is.md)
+        * [Enterprise Only](/doc/controllers/enterprise-only.md)
+        
+        ## Classes Documentation
+        
+        * [Utility Classes](/doc/utility-classes.md)
+        * [HttpResponse](/doc/http-response.md)
+        * [HttpRequest](/doc/http-request.md)
+        
+        
+Keywords: FirstLanguage API,NLP,SDK,Python,Natural Language Processing
+Platform: UNKNOWN
+Description-Content-Type: text/markdown
diff --git a/firstlanguage_python.egg-info/SOURCES.txt b/firstlanguage_python.egg-info/SOURCES.txt
new file mode 100644
index 0000000..bcf5cfb
--- /dev/null
+++ b/firstlanguage_python.egg-info/SOURCES.txt
@@ -0,0 +1,98 @@
+LICENSE
+MANIFEST.in
+README.md
+setup.cfg
+setup.py
+firstlanguage_python/__init__.py
+firstlanguage_python/api_helper.py
+firstlanguage_python/configuration.py
+firstlanguage_python/decorators.py
+firstlanguage_python/firstlanguage_client.py
+firstlanguage_python.egg-info/PKG-INFO
+firstlanguage_python.egg-info/SOURCES.txt
+firstlanguage_python.egg-info/dependency_links.txt
+firstlanguage_python.egg-info/requires.txt
+firstlanguage_python.egg-info/top_level.txt
+firstlanguage_python/controllers/__init__.py
+firstlanguage_python/controllers/advanced_api_controller.py
+firstlanguage_python/controllers/base_controller.py
+firstlanguage_python/controllers/basic_api_controller.py
+firstlanguage_python/controllers/enterprise_only_controller.py
+firstlanguage_python/exceptions/__init__.py
+firstlanguage_python/exceptions/api_classify_426_error_exception.py
+firstlanguage_python/exceptions/api_exception.py
+firstlanguage_python/exceptions/api_lemmatize_426_error_exception.py
+firstlanguage_python/exceptions/api_morph_426_error_exception.py
+firstlanguage_python/exceptions/api_postag_426_error_exception.py
+firstlanguage_python/exceptions/api_stemmer_426_error_exception.py
+firstlanguage_python/exceptions/errors_exception.py
+firstlanguage_python/exceptions/m_426_error_exception.py
+firstlanguage_python/http/__init__.py
+firstlanguage_python/http/http_call_back.py
+firstlanguage_python/http/http_client.py
+firstlanguage_python/http/http_method_enum.py
+firstlanguage_python/http/http_request.py
+firstlanguage_python/http/http_response.py
+firstlanguage_python/http/requests_client.py
+firstlanguage_python/http/auth/__init__.py
+firstlanguage_python/http/auth/custom_header_authentication.py
+firstlanguage_python/models/__init__.py
+firstlanguage_python/models/api_imagecaption_request.py
+firstlanguage_python/models/api_imagecaption_response.py
+firstlanguage_python/models/api_ner_request.py
+firstlanguage_python/models/api_ner_request_1.py
+firstlanguage_python/models/api_ner_response.py
+firstlanguage_python/models/api_qa_request.py
+firstlanguage_python/models/api_qa_request_1.py
+firstlanguage_python/models/api_qa_response.py
+firstlanguage_python/models/api_question_request.py
+firstlanguage_python/models/api_question_response.py
+firstlanguage_python/models/api_summary_request.py
+firstlanguage_python/models/api_summary_request_1.py
+firstlanguage_python/models/api_summary_response.py
+firstlanguage_python/models/api_tableqa_request.py
+firstlanguage_python/models/api_tableqa_request_1.py
+firstlanguage_python/models/api_tableqa_response.py
+firstlanguage_python/models/api_translate_request.py
+firstlanguage_python/models/api_translate_request_1.py
+firstlanguage_python/models/api_translate_response.py
+firstlanguage_python/models/errors_1.py
+firstlanguage_python/models/input.py
+firstlanguage_python/models/input_1.py
+firstlanguage_python/models/input_10.py
+firstlanguage_python/models/input_11.py
+firstlanguage_python/models/input_12.py
+firstlanguage_python/models/input_13.py
+firstlanguage_python/models/input_14.py
+firstlanguage_python/models/input_15.py
+firstlanguage_python/models/input_16.py
+firstlanguage_python/models/input_2.py
+firstlanguage_python/models/input_3.py
+firstlanguage_python/models/input_4.py
+firstlanguage_python/models/input_5.py
+firstlanguage_python/models/input_6.py
+firstlanguage_python/models/input_7.py
+firstlanguage_python/models/input_8.py
+firstlanguage_python/models/input_9.py
+firstlanguage_python/models/orignal_string.py
+firstlanguage_python/models/responseclassify.py
+firstlanguage_python/models/responselemma.py
+firstlanguage_python/models/responsemorph.py
+firstlanguage_python/models/responsepo.py
+firstlanguage_python/models/responsestem.py
+firstlanguage_python/models/text_input.py
+firstlanguage_python/models/text_input_classify.py
+firstlanguage_python/models/text_input_tamil.py
+firstlanguage_python/models/url_input.py
+firstlanguage_python/models/url_input_classify.py
+firstlanguage_python/utilities/__init__.py
+firstlanguage_python/utilities/file_wrapper.py
+firstlanguage_python/utilities/schema_validator_wrapper.py
+tests/__init__.py
+tests/http_response_catcher.py
+tests/test_helper.py
+tests/controllers/__init__.py
+tests/controllers/controller_test_base.py
+tests/controllers/test_advanced_ap_is_controller.py
+tests/controllers/test_basic_ap_is_controller.py
+tests/controllers/test_enterprise_only_controller.py
\ No newline at end of file
diff --git a/firstlanguage_python.egg-info/dependency_links.txt b/firstlanguage_python.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/firstlanguage_python.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/firstlanguage_python.egg-info/requires.txt b/firstlanguage_python.egg-info/requires.txt
new file mode 100644
index 0000000..b68d62f
--- /dev/null
+++ b/firstlanguage_python.egg-info/requires.txt
@@ -0,0 +1,6 @@
+cachecontrol~=0.12.6
+enum34>=1.1.10,~=1.1
+jsonpickle>=1.4.1,~=1.4
+jsonschema~=3.2.0
+python-dateutil~=2.8.1
+requests~=2.25
diff --git a/firstlanguage_python.egg-info/top_level.txt b/firstlanguage_python.egg-info/top_level.txt
new file mode 100644
index 0000000..fe9efa4
--- /dev/null
+++ b/firstlanguage_python.egg-info/top_level.txt
@@ -0,0 +1,2 @@
+firstlanguage_python
+tests
diff --git a/firstlanguage_python/__init__.py b/firstlanguage_python/__init__.py
new file mode 100644
index 0000000..66dde5c
--- /dev/null
+++ b/firstlanguage_python/__init__.py
@@ -0,0 +1,10 @@
+__all__ = [
+    'api_helper',
+    'configuration',
+    'controllers',
+    'decorators',
+    'exceptions',
+    'firstlanguage_client',
+    'http',
+    'models',
+]
diff --git a/firstlanguage_python/__pycache__/__init__.cpython-39.pyc b/firstlanguage_python/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..3ee79d8
Binary files /dev/null and b/firstlanguage_python/__pycache__/__init__.cpython-39.pyc differ
diff --git a/firstlanguage_python/__pycache__/api_helper.cpython-39.pyc b/firstlanguage_python/__pycache__/api_helper.cpython-39.pyc
new file mode 100644
index 0000000..06fe313
Binary files /dev/null and b/firstlanguage_python/__pycache__/api_helper.cpython-39.pyc differ
diff --git a/firstlanguage_python/__pycache__/configuration.cpython-39.pyc b/firstlanguage_python/__pycache__/configuration.cpython-39.pyc
new file mode 100644
index 0000000..78db442
Binary files /dev/null and b/firstlanguage_python/__pycache__/configuration.cpython-39.pyc differ
diff --git a/firstlanguage_python/__pycache__/decorators.cpython-39.pyc b/firstlanguage_python/__pycache__/decorators.cpython-39.pyc
new file mode 100644
index 0000000..71901c0
Binary files /dev/null and b/firstlanguage_python/__pycache__/decorators.cpython-39.pyc differ
diff --git a/firstlanguage_python/__pycache__/firstlanguage_client.cpython-39.pyc b/firstlanguage_python/__pycache__/firstlanguage_client.cpython-39.pyc
new file mode 100644
index 0000000..5d338f0
Binary files /dev/null and b/firstlanguage_python/__pycache__/firstlanguage_client.cpython-39.pyc differ
diff --git a/firstlanguage_python/__pycache__/firstlanguageapi_client.cpython-39.pyc b/firstlanguage_python/__pycache__/firstlanguageapi_client.cpython-39.pyc
new file mode 100644
index 0000000..679c689
Binary files /dev/null and b/firstlanguage_python/__pycache__/firstlanguageapi_client.cpython-39.pyc differ
diff --git a/firstlanguage_python/api_helper.py b/firstlanguage_python/api_helper.py
new file mode 100644
index 0000000..5b08950
--- /dev/null
+++ b/firstlanguage_python/api_helper.py
@@ -0,0 +1,447 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+import re
+import sys
+import datetime
+import calendar
+import email.utils as eut
+from time import mktime
+
+import jsonpickle
+import dateutil.parser
+from requests.utils import quote
+
+
+class APIHelper(object):
+
+    """A Helper Class for various functions associated with API Calls.
+
+    This class contains static methods for operations that need to be
+    performed during API requests. All of the methods inside this class are
+    static methods, there is no need to ever initialise an instance of this
+    class.
+
+    """
+
+    @staticmethod
+    def merge_dicts(dict1, dict2):
+        """Merges two dictionaries into one as a shallow copy.
+
+        Args:
+            dict1 (dict): The first dictionary.
+            dict2 (dict): The second dictionary.
+
+        Returns:
+            dict: A dictionary containing key value pairs
+            from both the argument dictionaries. In the case
+            of a key conflict, values from dict2 are used
+            and those from dict1 are lost.
+
+        """
+        temp = dict1.copy()
+        temp.update(dict2)
+        return temp
+
+    @staticmethod
+    def json_serialize(obj):
+        """JSON Serialization of a given object.
+
+        Args:
+            obj (object): The object to serialize.
+
+        Returns:
+            str: The JSON serialized string of the object.
+
+        """
+        if obj is None:
+            return None
+
+        # Resolve any Names if it's one of our objects that needs to have this called on
+        if isinstance(obj, list):
+            value = list()
+            for item in obj:
+                if hasattr(item, "_names"):
+                    value.append(APIHelper.to_dictionary(item))
+                else:
+                    value.append(item)
+            obj = value
+        else:
+            if hasattr(obj, "_names"):
+                obj = APIHelper.to_dictionary(obj)
+
+        return jsonpickle.encode(obj, False)
+
+    @staticmethod
+    def json_deserialize(json, unboxing_function=None, as_dict=False):
+        """JSON Deserialization of a given string.
+
+        Args:
+            json (str): The JSON serialized string to deserialize.
+
+        Returns:
+            dict: A dictionary representing the data contained in the
+                JSON serialized string.
+
+        """
+        if json is None:
+            return None
+
+        try:
+            decoded = jsonpickle.decode(json)
+        except ValueError:
+            return json
+
+        if unboxing_function is None:
+            return decoded
+
+        if as_dict:
+            return {k: unboxing_function(v) for k, v in decoded.items()}
+        elif isinstance(decoded, list):
+            return [unboxing_function(element) for element in decoded]
+        else:
+            return unboxing_function(decoded)
+
+    @staticmethod
+    def get_content_type(value):
+        """Get content type header for oneof.
+
+        Args:
+            value: The value passed by the user.
+
+        Returns:
+            dict: A dictionary representing the data contained in the
+                JSON serialized string.
+
+        """
+        if value is None:
+            return None
+        primitive = (int, str, bool, float)
+
+        if type(value) in primitive:
+            return 'text/plain; charset=utf-8'
+
+        else:
+            return 'application/json; charset=utf-8'
+
+    @staticmethod
+    def get_schema_path(path):
+        """Return the Schema's path
+
+        Returns:
+            string : returns Correct schema path
+
+        """
+        path = path.replace('\\models', '\\schemas').replace('/models', '/schemas').replace(".py", ".json")
+        return path
+
+    @staticmethod
+    def serialize_array(key, array, formatting="indexed", is_query=False):
+        """Converts an array parameter to a list of key value tuples.
+
+        Args:
+            key (str): The name of the parameter.
+            array (list): The value of the parameter.
+            formatting (str): The type of key formatting expected.
+            is_query (bool): Decides if the parameters are for query or form.
+
+        Returns:
+            list: A list with key value tuples for the array elements.
+
+        """
+        tuples = []
+
+        if sys.version_info[0] < 3:
+            serializable_types = (str, int, long, float, bool, datetime.date, APIHelper.CustomDate)
+        else:
+            serializable_types = (str, int, float, bool, datetime.date, APIHelper.CustomDate)
+
+        if isinstance(array[0], serializable_types):
+            if formatting == "unindexed":
+                tuples += [("{0}[]".format(key), element) for element in array]
+            elif formatting == "indexed":
+                tuples += [("{0}[{1}]".format(key, index), element) for index, element in enumerate(array)]
+            elif formatting == "plain":
+                tuples += [(key, element) for element in array]
+            elif is_query:
+                if formatting == "csv":
+                    tuples += [(key, ",".join(str(x) for x in array))]
+
+                elif formatting == "psv":
+                    tuples += [(key, "|".join(str(x) for x in array))]
+
+                elif formatting == "tsv":
+                    tuples += [(key, "\t".join(str(x) for x in array))]
+
+            else:
+                raise ValueError("Invalid format provided.")
+        else:
+            tuples += [("{0}[{1}]".format(key, index), element) for index, element in enumerate(array)]
+
+        return tuples
+
+    @staticmethod
+    def append_url_with_template_parameters(url, parameters):
+        """Replaces template parameters in the given url.
+
+        Args:
+            url (str): The query url string to replace the template parameters.
+            parameters (dict): The parameters to replace in the url.
+
+        Returns:
+            str: URL with replaced parameters.
+
+        """
+        # Parameter validation
+        if url is None:
+            raise ValueError("URL is None.")
+        if parameters is None:
+            return url
+
+        # Iterate and replace parameters
+        for key in parameters:
+            value = parameters[key]['value']
+            encode = parameters[key]['encode']
+            replace_value = ''
+
+            # Load parameter value
+            if value is None:
+                replace_value = ''
+            elif isinstance(value, list):
+                replace_value = "/".join((quote(str(x), safe='') if encode else str(x)) for x in value)
+            else:
+                replace_value = quote(str(value), safe='') if encode else str(value)
+
+            url = url.replace('{{{0}}}'.format(key), str(replace_value))
+
+        return url
+
+    @staticmethod
+    def append_url_with_query_parameters(url,
+                                         parameters,
+                                         array_serialization="indexed"):
+        """Adds query parameters to a URL.
+
+        Args:
+            url (str): The URL string.
+            parameters (dict): The query parameters to add to the URL.
+            array_serialization (str): The format of array parameter serialization.
+
+        Returns:
+            str: URL with added query parameters.
+
+        """
+        # Parameter validation
+        if url is None:
+            raise ValueError("URL is None.")
+        if parameters is None:
+            return url
+        parameters = APIHelper.process_complex_types_parameters(parameters, array_serialization)
+        for index, value in enumerate(parameters):
+            key = value[0]
+            val = value[1]
+            seperator = '&' if '?' in url else '?'
+            if value is not None:
+                url += "{0}{1}={2}".format(seperator, key, quote(str(val), safe=''))
+
+        return url
+
+    @staticmethod
+    def process_complex_types_parameters(query_parameters, array_serialization):
+        processed_params = []
+        for key, value in query_parameters.items():
+            processed_params.extend(
+                APIHelper.form_encode(value, key, array_serialization=array_serialization, is_query=True))
+        return processed_params
+
+
+    @staticmethod
+    def clean_url(url):
+        """Validates and processes the given query Url to clean empty slashes.
+
+        Args:
+            url (str): The given query Url to process.
+
+        Returns:
+            str: Clean Url as string.
+
+        """
+        # Ensure that the urls are absolute
+        regex = "^https?://[^/]+"
+        match = re.match(regex, url)
+        if match is None:
+            raise ValueError('Invalid Url format.')
+
+        protocol = match.group(0)
+        index = url.find('?')
+        query_url = url[len(protocol): index if index != -1 else None]
+        query_url = re.sub("//+", "/", query_url)
+        parameters = url[index:] if index != -1 else ""
+
+        return protocol + query_url + parameters
+
+    @staticmethod
+    def form_encode_parameters(form_parameters,
+                               array_serialization="indexed"):
+        """Form encodes a dictionary of form parameters
+
+        Args:
+            form_parameters (dictionary): The given dictionary which has
+            atleast one model to form encode.
+            array_serialization (str): The format of array parameter serialization.
+
+        Returns:
+            dict: A dictionary of form encoded properties of the model.
+
+        """
+        encoded = []
+
+        for key, value in form_parameters.items():
+            encoded += APIHelper.form_encode(value, key, array_serialization)
+
+        return encoded
+
+    @staticmethod
+    def form_encode(obj,
+                    instance_name,
+                    array_serialization="indexed", is_query=False):
+        """Encodes a model in a form-encoded manner such as person[Name]
+
+        Args:
+            obj (object): The given Object to form encode.
+            instance_name (string): The base name to appear before each entry
+                for this object.
+            array_serialization (string): The format of array parameter serialization.
+            is_query (bool): Decides if the parameters are for query or form.
+
+        Returns:
+            dict: A dictionary of form encoded properties of the model.
+
+        """
+        retval = []
+        # If we received an object, resolve it's field names.
+        if hasattr(obj, "_names"):
+            obj = APIHelper.to_dictionary(obj)
+
+        if obj is None:
+            return []
+        elif isinstance(obj, list):
+            for element in APIHelper.serialize_array(instance_name, obj, array_serialization, is_query):
+                retval += APIHelper.form_encode(element[1], element[0], array_serialization, is_query)
+        elif isinstance(obj, dict):
+            for item in obj:
+                retval += APIHelper.form_encode(obj[item], instance_name + "[" + item + "]", array_serialization, is_query)
+        else:
+            retval.append((instance_name, obj))
+
+        return retval
+
+    @staticmethod
+    def to_dictionary(obj):
+        """Creates a dictionary representation of a class instance. The
+        keys are taken from the API description and may differ from language
+        specific variable names of properties.
+
+        Args:
+            obj: The object to be converted into a dictionary.
+
+        Returns:
+            dictionary: A dictionary form of the model with properties in
+            their API formats.
+
+        """
+        dictionary = dict()
+
+        # Loop through all properties in this model
+        for name in obj._names:
+            value = getattr(obj, name)
+            if isinstance(value, list):
+                # Loop through each item
+                dictionary[obj._names[name]] = list()
+                for item in value:
+                    dictionary[obj._names[name]].append(APIHelper.to_dictionary(item) if hasattr(item, "_names") else item)
+            elif isinstance(value, dict):
+                # Loop through each item
+                dictionary[obj._names[name]] = dict()
+                for key in value:
+                    dictionary[obj._names[name]][key] = APIHelper.to_dictionary(value[key]) if hasattr(value[key], "_names") else value[key]
+            else:
+                dictionary[obj._names[name]] = APIHelper.to_dictionary(value) if hasattr(value, "_names") else value
+
+        # Return the result
+        return dictionary
+
+    @staticmethod
+    def when_defined(func, value):
+        return func(value) if value else None
+
+    class CustomDate(object):
+
+        """ A base class for wrapper classes of datetime.
+
+        This class contains methods which help in
+        appropriate serialization of datetime objects.
+
+        """
+
+        def __init__(self, dtime, value=None):
+            self.datetime = dtime
+            if not value:
+                self.value = self.from_datetime(dtime)
+            else:
+                self.value = value
+
+        def __repr__(self):
+            return str(self.value)
+
+        def __getstate__(self):
+            return self.value
+
+        def __setstate__(self, state):
+            pass
+
+    class HttpDateTime(CustomDate):
+
+        """ A wrapper class for datetime to support HTTP date format."""
+
+        @classmethod
+        def from_datetime(cls, date_time):
+            return eut.formatdate(timeval=mktime(date_time.timetuple()),
+                                  localtime=False, usegmt=True)
+
+        @classmethod
+        def from_value(cls, value):
+            dtime = datetime.datetime.fromtimestamp(eut.mktime_tz(eut.parsedate_tz(value)))
+            return cls(dtime, value)
+
+    class UnixDateTime(CustomDate):
+
+        """ A wrapper class for datetime to support Unix date format."""
+
+        @classmethod
+        def from_datetime(cls, date_time):
+            return calendar.timegm(date_time.utctimetuple())
+
+        @classmethod
+        def from_value(cls, value):
+            dtime = datetime.datetime.utcfromtimestamp(float(value))
+            return cls(dtime, float(value))
+
+    class RFC3339DateTime(CustomDate):
+
+        """ A wrapper class for datetime to support Rfc 3339 format."""
+
+        @classmethod
+        def from_datetime(cls, date_time):
+            return date_time.isoformat()
+
+        @classmethod
+        def from_value(cls, value):
+            dtime = dateutil.parser.parse(value)
+            return cls(dtime, value)
diff --git a/firstlanguage_python/configuration.py b/firstlanguage_python/configuration.py
new file mode 100644
index 0000000..e5beb58
--- /dev/null
+++ b/firstlanguage_python/configuration.py
@@ -0,0 +1,159 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from enum import Enum
+from firstlanguage_python.http.requests_client import RequestsClient
+
+
+class Environment(Enum):
+    """An enum for SDK environments"""
+    # Live Server
+    PRODUCTION = 0
+
+
+class Server(Enum):
+    """An enum for API servers"""
+    DEFAULT = 0
+
+
+class Configuration(object):
+    """A class used for configuring the SDK by a user.
+    """
+
+    @property
+    def http_client(self):
+        return self._http_client
+
+    @property
+    def http_client_instance(self):
+        return self._http_client_instance
+
+    @property
+    def override_http_client_configuration(self):
+        return self._override_http_client_configuration
+
+    @property
+    def timeout(self):
+        return self._timeout
+
+    @property
+    def max_retries(self):
+        return self._max_retries
+
+    @property
+    def backoff_factor(self):
+        return self._backoff_factor
+
+    @property
+    def retry_statuses(self):
+        return self._retry_statuses
+
+    @property
+    def retry_methods(self):
+        return self._retry_methods
+
+    @property
+    def environment(self):
+        return self._environment
+
+    @property
+    def apikey(self):
+        return self._apikey
+
+    def __init__(
+        self, http_client_instance=None,
+        override_http_client_configuration=False, timeout=60, max_retries=0,
+        backoff_factor=2,
+        retry_statuses=[408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
+        retry_methods=['GET', 'PUT'], environment=Environment.PRODUCTION,
+        apikey='TODO: Replace'
+    ):
+        # The Http Client passed from the sdk user for making requests
+        self._http_client_instance = http_client_instance
+
+        # The value which determines to override properties of the passed Http Client from the sdk user
+        self._override_http_client_configuration = override_http_client_configuration
+
+        # The value to use for connection timeout
+        self._timeout = timeout
+
+        # The number of times to retry an endpoint call if it fails
+        self._max_retries = max_retries
+
+        # A backoff factor to apply between attempts after the second try.
+        # urllib3 will sleep for:
+        # `{backoff factor} * (2 ** ({number of total retries} - 1))`
+        self._backoff_factor = backoff_factor
+
+        # The http statuses on which retry is to be done
+        self._retry_statuses = retry_statuses
+
+        # The http methods on which retry is to be done
+        self._retry_methods = retry_methods
+
+        # Current API environment
+        self._environment = environment
+
+        # TODO: Replace
+        self._apikey = apikey
+
+        # The Http Client to use for making requests.
+        self._http_client = self.create_http_client()
+
+    def clone_with(self, http_client_instance=None,
+                   override_http_client_configuration=None, timeout=None,
+                   max_retries=None, backoff_factor=None, retry_statuses=None,
+                   retry_methods=None, environment=None, apikey=None):
+        http_client_instance = http_client_instance or self.http_client_instance
+        override_http_client_configuration = override_http_client_configuration or self.override_http_client_configuration
+        timeout = timeout or self.timeout
+        max_retries = max_retries or self.max_retries
+        backoff_factor = backoff_factor or self.backoff_factor
+        retry_statuses = retry_statuses or self.retry_statuses
+        retry_methods = retry_methods or self.retry_methods
+        environment = environment or self.environment
+        apikey = apikey or self.apikey
+
+        return Configuration(
+            http_client_instance=http_client_instance,
+            override_http_client_configuration=override_http_client_configuration,
+            timeout=timeout, max_retries=max_retries,
+            backoff_factor=backoff_factor, retry_statuses=retry_statuses,
+            retry_methods=retry_methods, environment=environment, apikey=apikey
+        )
+
+    def create_http_client(self):
+        return RequestsClient(
+            timeout=self.timeout, max_retries=self.max_retries,
+            backoff_factor=self.backoff_factor, retry_statuses=self.retry_statuses,
+            retry_methods=self.retry_methods,
+            http_client_instance=self.http_client_instance,
+            override_http_client_configuration=self.override_http_client_configuration
+        )
+
+    # All the environments the SDK can run in
+    environments = {
+        Environment.PRODUCTION: {
+            Server.DEFAULT: 'https://api.firstlanguage.in'
+        }
+    }
+
+    def get_base_uri(self, server=Server.DEFAULT):
+        """Generates the appropriate base URI for the environment and the
+        server.
+
+        Args:
+            server (Configuration.Server): The server enum for which the base
+            URI is required.
+
+        Returns:
+            String: The base URI.
+
+        """
+        return self.environments[self.environment][server]
diff --git a/firstlanguage_python/controllers/__init__.py b/firstlanguage_python/controllers/__init__.py
new file mode 100644
index 0000000..f026b90
--- /dev/null
+++ b/firstlanguage_python/controllers/__init__.py
@@ -0,0 +1,6 @@
+__all__ = [
+    'base_controller',
+    'basic_api_controller',
+    'advanced_api_controller',
+    'enterprise_only_controller',
+]
diff --git a/firstlanguage_python/controllers/__pycache__/__init__.cpython-39.pyc b/firstlanguage_python/controllers/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..004feae
Binary files /dev/null and b/firstlanguage_python/controllers/__pycache__/__init__.cpython-39.pyc differ
diff --git a/firstlanguage_python/controllers/__pycache__/advanced_ap_is_controller.cpython-39.pyc b/firstlanguage_python/controllers/__pycache__/advanced_ap_is_controller.cpython-39.pyc
new file mode 100644
index 0000000..a6f8a7d
Binary files /dev/null and b/firstlanguage_python/controllers/__pycache__/advanced_ap_is_controller.cpython-39.pyc differ
diff --git a/firstlanguage_python/controllers/__pycache__/advanced_api_controller.cpython-39.pyc b/firstlanguage_python/controllers/__pycache__/advanced_api_controller.cpython-39.pyc
new file mode 100644
index 0000000..8548e5f
Binary files /dev/null and b/firstlanguage_python/controllers/__pycache__/advanced_api_controller.cpython-39.pyc differ
diff --git a/firstlanguage_python/controllers/__pycache__/base_controller.cpython-39.pyc b/firstlanguage_python/controllers/__pycache__/base_controller.cpython-39.pyc
new file mode 100644
index 0000000..2f31a07
Binary files /dev/null and b/firstlanguage_python/controllers/__pycache__/base_controller.cpython-39.pyc differ
diff --git a/firstlanguage_python/controllers/__pycache__/basic_ap_is_controller.cpython-39.pyc b/firstlanguage_python/controllers/__pycache__/basic_ap_is_controller.cpython-39.pyc
new file mode 100644
index 0000000..5a9826c
Binary files /dev/null and b/firstlanguage_python/controllers/__pycache__/basic_ap_is_controller.cpython-39.pyc differ
diff --git a/firstlanguage_python/controllers/__pycache__/basic_api_controller.cpython-39.pyc b/firstlanguage_python/controllers/__pycache__/basic_api_controller.cpython-39.pyc
new file mode 100644
index 0000000..60f9771
Binary files /dev/null and b/firstlanguage_python/controllers/__pycache__/basic_api_controller.cpython-39.pyc differ
diff --git a/firstlanguage_python/controllers/advanced_api_controller.py b/firstlanguage_python/controllers/advanced_api_controller.py
new file mode 100644
index 0000000..cd4268c
--- /dev/null
+++ b/firstlanguage_python/controllers/advanced_api_controller.py
@@ -0,0 +1,646 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+from firstlanguage_python.configuration import Server
+from firstlanguage_python.controllers.base_controller import BaseController
+from firstlanguage_python.models.responseclassify import Responseclassify
+from firstlanguage_python.models.api_qa_response import ApiQaResponse
+from firstlanguage_python.models.api_tableqa_response import ApiTableqaResponse
+from firstlanguage_python.models.api_imagecaption_response import ApiImagecaptionResponse
+from firstlanguage_python.models.api_ner_response import ApiNerResponse
+from firstlanguage_python.models.api_summary_response import ApiSummaryResponse
+from firstlanguage_python.models.api_translate_response import ApiTranslateResponse
+from firstlanguage_python.exceptions.errors_exception import ErrorsException
+from firstlanguage_python.exceptions.api_classify_426_error_exception import ApiClassify426ErrorException
+from firstlanguage_python.exceptions.api_exception import APIException
+from firstlanguage_python.exceptions.m_426_error_exception import M426ErrorException
+
+
+class AdvancedAPIsController(BaseController):
+
+    """A Controller to access Endpoints in the firstlanguage_python API."""
+    def __init__(self, config, auth_managers, call_back=None):
+        super(AdvancedAPIsController, self).__init__(config, auth_managers, call_back)
+
+    def get_classification(self,
+                           body):
+        """Does a POST request to /api/classify.
+
+        A text classifier identifies the categories of the text given as
+        input. Classifying the texts is one of the powerful preprocessing
+        technique in topic identification and sentiment classification
+        (product reviews, movie reviews etc)and indexing the texts while
+        building a search system.
+        # Languages covered:
+        | Languages  | ISO Code |
+        |------------|----------|
+        | Arabic     | ar       |
+        | Bulgarian  | bg       |
+        | Chinese    | zh       |
+        | English    | en       |
+        | French     | fr       |
+        | German     | de       |
+        | Greek      | el       |
+        | Hindi      | hi       |
+        | Russian    | ru       |
+        | Spanish    | es       |
+        | Swahili    | sw       |
+        | Thai       | th       |
+        | Turkish    | tr       |
+        | Urdu       | ur       |
+        | Vietnamese | vi       |
+
+        Args:
+            body (object): Add a JSON Input as per the schema defined below 
+                **Size limit:**   1MB for both text and URL input  **URL
+                Input:**  For URL, we now accept 4 contentTypes. * html *
+                plaintext * pdf * docx  If you are providing Google drive or
+                Google Spreadsheet url, ensure that you provide a link which
+                can download the file directly and not the share link. 
+                Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            Responseclassify: Response from the API. Classifies labels.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/classify'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Error output', _response)
+        elif _response.status_code == 426:
+            raise ApiClassify426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, Responseclassify.from_dictionary)
+
+        return decoded
+
+    def get_qa(self,
+               body=None):
+        """Does a POST request to /api/qa.
+
+        A Question Answering System retrieves the answer relevant to the
+        question given by the user. A question answering system can be used
+        for building a text based chatbots, search engines etc. Our question
+        answering system  is mutilingual and supports 100 + languages. Please
+        use ISO 639-2 2 digit language code  to get results. For example, use
+        'en' for English, 'ta' for Tamil, 'hi' for Hindi, 'fr' for French
+        etc.
+        For ISO code reference, please check the link
+        https://www.loc.gov/standards/iso639-2/php/code_list.php
+
+        Args:
+            body (object, optional): Add a JSON Input as per the schema
+                defined below  **Size limit:**   1MB for both text and URL
+                input  **URL Input:**  For URL, we now accept 4 contentTypes.
+                * html * plaintext * pdf * docx  If you are providing Google
+                drive or Google Spreadsheet url, ensure that you provide a
+                link which can download the file directly and not the share
+                link.  Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            ApiQaResponse: Response from the API. Answer for the question
+                posted.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/qa'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Bad Request', _response)
+        elif _response.status_code == 426:
+            raise M426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, ApiQaResponse.from_dictionary)
+
+        return decoded
+
+    def get_table_qa(self,
+                     body=None):
+        """Does a POST request to /api/tableqa.
+
+        # TableQA : Defintion and it's usage
+        Table QA uses TAPAS based model to get answers from table input. The
+        table can be parsed into a JSON object or it can be a link to a CSV
+        file. Currently only Plain CSV file is supported. 
+        This API works only for English language currently
+        Example for flattend table in JSON Format:<br/>
+        {"Cities": ["Paris, France", "London, England", "Lyon, France"],
+        "Inhabitants": ["2.161", "8.982", "0.513"]}
+        The API can return the original table rows from which the answer was
+        extracted based on the flag 'sendBackRows'
+
+        Args:
+            body (object, optional): Add a JSON Input as per the schema
+                defined below. For URL input, if you are providing Google
+                drive or Google Spreadsheet url ensure that you provide a link
+                which can download the file directly and not the share link. 
+                Example for Google Spreadsheet link: 
+                https://docs.google.com/spreadsheets/d/1TtzPAHqpaTB7Ltdq0zwZ8Fa
+                mF7O9aC4KH4EpmwI/export?format=csv&gid=151344200  Example for
+                Google Drive link:  https://drive.google.com/uc?id=idofthefile
+                For Flat table input check the example.
+
+        Returns:
+            list of ApiTableqaResponse: Response from the API. Answers for the
+                questions posted along with the original rows if the flag is
+                true.
+
+The anwer will be of format:
+
+AGGREGRATE >
+                answer
+
+Aggregrate can be one of the
+                following:
+NONE,
+SUM,
+COUNT,
+AVERAGE
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/tableqa'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Bad Request', _response)
+        elif _response.status_code == 426:
+            raise M426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, ApiTableqaResponse.from_dictionary)
+
+        return decoded
+
+    def get_image_caption(self,
+                          body=None):
+        """Does a POST request to /api/imagecaption.
+
+        # Image Captioning with Visual Attention : Defintion and it's usage
+        Image Captioning is the process of generating textual description of
+        an image. It uses both Natural Language Processing and Computer Vision
+        to generate the captions.
+        This API works generates only English Captions
+        <b>Enterprise Plan Alert:</b> For Enterprise Users GPU powered
+        endpoint can be provisioned. <b> This will reduce the response time of
+        the API by alomst 90%.</b> 
+
+        Args:
+            body (ApiImagecaptionRequest, optional): Add a JSON Input as per
+                the schema defined below.   For URL, if you are providing
+                Google drive or Google Spreadsheet url ensure that you provide
+                a link which can download the file directly and not the share
+                link.  Example for Google Drive: 
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            ApiImagecaptionResponse: Response from the API. Generates caption
+                for the provided image.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/imagecaption'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Bad Request', _response)
+        elif _response.status_code == 426:
+            raise M426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, ApiImagecaptionResponse.from_dictionary)
+
+        return decoded
+
+    def get_ner(self,
+                body=None):
+        """Does a POST request to /api/ner.
+
+        Named Entity Recognitiion  (NER) is extracting the specific Nouns such
+        as, Person Names, Location names, Organization Names, Currency ,
+        Dates. It is a classification task. NER can be used as a sub-task in
+        applications such as Search Systems, Chatbots, Question Answering
+        systems, Text Summarization etc. 
+        # Languages covered:
+        | Languages          | ISO Code |
+        |--------------------|----------|
+        | Arabic             | ar       |
+        | Chinese            | zh       |
+        | Dutch              | nl       |
+        | English            | en       |
+        | French             | fr       |
+        | German             | de       |
+        | Italian            | it       |
+        | Latvian            | lv       |
+        | Portuguese         | pt       |
+        | Spanish            | es       |
+        For other languages we cannot guarantee results but you can try with
+        ISO code. 
+        For ISO code reference, please check the link
+        https://www.loc.gov/standards/iso639-2/php/code_list.php
+
+        Args:
+            body (object, optional): Add a JSON Input as per the schema
+                defined below  **Size limit:**   1MB for both text and URL
+                input  **URL Input:**  For URL, we now accept 4 contentTypes.
+                * html * plaintext * pdf * docx  If you are providing Google
+                drive or Google Spreadsheet url, ensure that you provide a
+                link which can download the file directly and not the share
+                link.  Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            list of ApiNerResponse: Response from the API. Array of Named
+                Entites marked from the input given.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/ner'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Bad Request', _response)
+        elif _response.status_code == 426:
+            raise M426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, ApiNerResponse.from_dictionary)
+
+        return decoded
+
+    def get_summary(self,
+                    body=None):
+        """Does a POST request to /api/summary.
+
+        Summarization generates a crisp content of the large input text which
+        is highly coherent. 
+        | Languages               | ISO Code |
+        |-------------------------|----------|
+        | Amharic                 | am       |
+        | Arabic                  |  ar      |
+        | Azerbaijani             |  az      |
+        | Bengali                 |  bn      |
+        | Burmese                 |  my      |
+        | Chinese                 |  zh      |
+        | English                 |  en      |
+        | French                  |  fr      |
+        | Gaelic; Scottish Gaelic | gd       |
+        | Gujarati                |  gu      |
+        | Hausa                   |  ha      |
+        | Hindi                   |  hi      |
+        | Igbo                    |  ig      |
+        | Indonesian              |  id      |
+        | Japanese                |  ja      |
+        | Kirghiz; Kyrgyz         | ky       |
+        | Korean                  |  ko      |
+        | Marathi                 |  mr      |
+        | Nepali                  |  ne      |
+        | Oromo                   | om       |
+        | Persian                 | fa       |
+        | Portuguese              |  pt      |
+        | Punjabi                 |  pa      |
+        | Pushto; Pashto          | ps       |
+        | Rundi                   | rn       |
+        | Russian                 | ru       |
+        | Serbian                 |  sr      |
+        | Sinhala; Sinhalese      |  si      |
+        | Somali                  |  so      |
+        | Spanish; Castilian      |  es      |
+        | Swahili                 |  sw      |
+        | Tamil                   |  ta      |
+        | Telugu                  |  te      |
+        | Thai                    |  th      |
+        | Tigrinya                |  ti      |
+        | Turkish                 |  tr      |
+        | Ukrainian               |  uk      |
+        | Urdu                    |  ur      |
+        | Uzbek                   |  uz      |
+        | Vietnamese              |  vi      |
+        | Welsh                   |  cy      |
+        | Yoruba                  |  yo      |
+
+        Args:
+            body (object, optional): Add a JSON Input as per the schema
+                defined below  **Size limit:**   1MB for both text and URL
+                input  **URL Input:**  For URL, we now accept 4 contentTypes.
+                * html * plaintext * pdf * docx  If you are providing Google
+                drive or Google Spreadsheet url, ensure that you provide a
+                link which can download the file directly and not the share
+                link.  Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            ApiSummaryResponse: Response from the API. JSON Object with
+                summary of the text given
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/summary'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Bad Request', _response)
+        elif _response.status_code == 426:
+            raise M426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, ApiSummaryResponse.from_dictionary)
+
+        return decoded
+
+    def get_translate(self,
+                      body=None):
+        """Does a POST request to /api/translate.
+
+        Machine Translation is translating the text automatically from  one
+        language to another langauge.
+        # Languages covered:
+        | Languages                             | ISO Code   |
+        |---------------------------------------|------------|
+        |  Abkhazian                            |   ab       |
+        |  Afrikaans                            |   af       |
+        |  Amharic                              |   am       |
+        |  Bashkir                              |   ba       |
+        |  Catalan; Valencian                   |   ca       |
+        |  Chechen                              |   ce       |
+        |  Corsican                             |   co       |
+        |  Chuvash                              |   cv       |
+        |  Ewe                                  |   ee       |
+        |  English                              |   en       |
+        |  Basque                               |   eu       |
+        |  Fijian                               |   fj       |
+        |  French                               |   fr       |
+        |  Galician                             |   gl       |
+        |  Gujarati                             |   gu       |
+        |  Manx                                 |   gv       |
+        |  Hebrew                               |   he       |
+        |  Haitian; Haitian Creole              |   ht       |
+        |  Armenian                             |   hy       |
+        |  Indonesian                           |   id       |
+        |  Igbo                                 |   ig       |
+        |  Icelandic                            |   is       |
+        |  Japanese                             |   ja       |
+        |  Kalaallisut; Greenlandic             |   kl       |
+        |  Ganda                                |   lg       |
+        |  Lingala                              |   ln       |
+        |  Malagasy                             |   mg       |
+        |  Marshallese                          |   mh       |
+        |  Macedonian                           |   mk       |
+        |  Mongolian                            |   mn       |
+        |  Nauru                                |   na       |
+        |  Bokmål, Norwegian; Norwegian Bokmål  |   nb       |
+        |  Chichewa; Chewa; Nyanja              |   ny       |
+        |  Ossetian; Ossetic                    |   os       |
+        |  Pushto; Pashto                       |   ps       |
+        |  Romansh                              |   rm       |
+        |  Rundi                                |   rn       |
+        |  Sango                                |   sg       |
+        |  Samoan                               |   sm       |
+        |  Shona                                |   sn       |
+        |  Somali                               |   so       |
+        |  Albanian                             |   sq       |
+        |  Tamil                                |   ta       |
+        |  Tigrinya                             |   ti       |
+        |  Turkmen                              |   tk       |
+        |  Tonga                                |   to       |
+        |  Turkish                              |   tr       |
+        |  Tsonga                               |   ts       |
+        |  Tatar                                |   tt       |
+        |  Tahitian                             |   ty       |
+        |  Ukrainian                            |   uk       |
+        |  Vietnamese                           |   vi       |
+        |  Walloon                              |   wa       |
+        |  Xhosa                                |   xh       |
+        |  Yoruba                               |   yo       |
+        |  Zulu                                 |   zu       |
+
+        Args:
+            body (object, optional): Add a JSON Input as per the schema
+                defined below  **Size limit:**   1MB for both text and URL
+                input  **URL Input:**  For URL, we now accept 4 contentTypes.
+                * html * plaintext * pdf * docx  If you are providing Google
+                drive or Google Spreadsheet url, ensure that you provide a
+                link which can download the file directly and not the share
+                link.  Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile  **preserveFormat
+                Flag:**  When true:  This applies only for PDF and DOCX
+                content types. The API will try to maintain the source file
+                formatting. DOCX files will mostly work without any issues.
+                But for PDF files, the API will try to maintain the format but
+                it is not guaranteed. Scanned documents will also not work.
+                For PDF files, if the target language font is not renderred
+                properly, please report the issue at info@firstlanguage.in 
+                When false:  If the flag is false, then the API will simply
+                read all text in the PDF and docx files and translate and send
+                the response back as plaintext.
+
+        Returns:
+            ApiTranslateResponse: Response from the API. JSON Object with
+                translation of the text given. 
+
+For PDF and DOCX contenttype
+                the response will be a PDF file or a DOCX file.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/translate'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+        if 'preserveFormat' in body["input"].keys() and body['input']['preserveFormat'] == 'true' and (body['input']['contentType'] == 'pdf' or body['input']['contentType'] == 'docx'):
+            response = self.execute_request(_request, True)            
+        else:
+            _response = self.execute_request(_request)
+             # Endpoint and global error handling using HTTP status codes.
+            if _response.status_code == 400:
+                raise ErrorsException('Bad Request', _response)
+            elif _response.status_code == 426:
+                raise M426ErrorException('Please use HTTPS protocol', _response)
+            elif _response.status_code == 429:
+                raise APIException('Too Many Requests', _response)            
+            self.validate_response(_response)
+            decoded = APIHelper.json_deserialize(_response.text, ApiTranslateResponse.from_dictionary)
+            return decoded
+        return response
\ No newline at end of file
diff --git a/firstlanguage_python/controllers/base_controller.py b/firstlanguage_python/controllers/base_controller.py
new file mode 100644
index 0000000..500b9bb
--- /dev/null
+++ b/firstlanguage_python/controllers/base_controller.py
@@ -0,0 +1,132 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+import platform
+from firstlanguage_python.api_helper import APIHelper
+from firstlanguage_python.exceptions.api_exception import APIException
+
+
+class BaseController(object):
+
+    """All controllers inherit from this base class.
+
+    Attributes:
+        config (Configuration): The HttpClient which a specific controller
+            instance will use. By default all the controller objects share
+            the same HttpClient. A user can use his own custom HttpClient
+            as well.
+        http_call_back (HttpCallBack): An object which holds call back
+            methods to be called before and after the execution of an HttpRequest.
+        auth_managers (dict): A dictionary which holds the instances of authentication managers.
+        global_headers (dict): The global headers of the API which are sent with
+            every request.
+
+    """
+
+    def global_headers(self):
+        return {
+            'user-agent': self.get_user_agent() 
+        }
+
+    def __init__(self, config, auth_managers, call_back=None):
+        self._config = config
+        self._auth_managers = auth_managers
+        self._http_call_back = call_back
+
+    @property
+    def config(self):
+        return self._config
+
+    @property
+    def http_call_back(self):
+        return self._http_call_back
+
+    @property
+    def auth_managers(self):
+        return self._auth_managers
+
+    def validate_parameters(self, **kwargs):
+        """Validates required parameters of an endpoint.
+
+        Args:
+            kwargs (dict): A dictionary of the required parameters.
+
+        """
+        for name, value in kwargs.items():
+            if value is None:
+                raise ValueError("Required parameter {} cannot be None.".format(name))
+
+    def execute_request(self, request, binary=False):
+        """Executes an HttpRequest.
+
+        Args:
+            request (HttpRequest): The HttpRequest to execute.
+            binary (bool): A flag which should be set to True if
+                a binary response is expected.
+
+        Returns:
+            HttpResponse: The HttpResponse received.
+
+        """
+        # Invoke the on before request HttpCallBack if specified
+        if self.http_call_back is not None:
+            self.http_call_back.on_before_request(request)
+
+        # Add global headers to request
+        request.headers = APIHelper.merge_dicts(self.global_headers(), request.headers)
+
+        # Invoke the API call to fetch the response.
+        func = self.config.http_client.execute_as_binary if binary else self.config.http_client.execute_as_string
+        response = func(request)
+
+        # Invoke the on after response HttpCallBack if specified
+        if self.http_call_back is not None:
+            self.http_call_back.on_after_response(response)
+
+        return response
+
+    def validate_response(self, response):
+        """Validates an HTTP response by checking for global errors.
+
+        Args:
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        if (response.status_code < 200) or (response.status_code > 208):  # [200,208] = HTTP OK
+            raise APIException('HTTP response not OK.', response)
+
+    def get_user_agent(self):
+        user_agent = 'APIMATIC 3.0'
+        parameters = {
+        }
+
+        agent = APIHelper.append_url_with_template_parameters(user_agent, parameters)
+        return agent.replace('  ', ' ')
+
+
+    def apply_auth_schemes(self, request, *auth_options):
+        auth_error_message = []
+        # traverse all options for OR auth
+        for option in auth_options:
+            # split the option for AND auths
+            schemes = option.split()
+            # check if all AND auth credentials exist in auth managers
+            if all(scheme in self.auth_managers and self.auth_managers[scheme].validate_arguments() for scheme in schemes):
+                # apply each auth scheme in AND case to request then break
+                for scheme in schemes:
+                    self.auth_managers[scheme].apply(request)
+                break
+            else:
+                for scheme in schemes:
+                    if scheme in self.auth_managers:
+                       auth_error_message.append(self.auth_managers[scheme].error_message())
+            #if the auth credentials for this auth option are missing then move to next
+            ## or if this is the last/only option then throw exception with reasonable message
+            if option is auth_options[-1]:
+                raise PermissionError("Required authentication is missing for: " + " and ".join(auth_error_message))
diff --git a/firstlanguage_python/controllers/basic_api_controller.py b/firstlanguage_python/controllers/basic_api_controller.py
new file mode 100644
index 0000000..164ee3d
--- /dev/null
+++ b/firstlanguage_python/controllers/basic_api_controller.py
@@ -0,0 +1,376 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+from firstlanguage_python.configuration import Server
+from firstlanguage_python.controllers.base_controller import BaseController
+from firstlanguage_python.models.responsestem import Responsestem
+from firstlanguage_python.models.responselemma import Responselemma
+from firstlanguage_python.models.responsemorph import Responsemorph
+from firstlanguage_python.models.responsepo import Responsepo
+from firstlanguage_python.exceptions.errors_exception import ErrorsException
+from firstlanguage_python.exceptions.api_stemmer_426_error_exception import ApiStemmer426ErrorException
+from firstlanguage_python.exceptions.api_exception import APIException
+from firstlanguage_python.exceptions.api_lemmatize_426_error_exception import ApiLemmatize426ErrorException
+from firstlanguage_python.exceptions.api_morph_426_error_exception import ApiMorph426ErrorException
+from firstlanguage_python.exceptions.api_postag_426_error_exception import ApiPostag426ErrorException
+
+
+class BasicAPIsController(BaseController):
+
+    """A Controller to access Endpoints in the firstlanguage_python API."""
+    def __init__(self, config, auth_managers, call_back=None):
+        super(BasicAPIsController, self).__init__(config, auth_managers, call_back)
+
+    def get_stemmer(self,
+                    body):
+        """Does a POST request to /api/stemmer.
+
+        A word takes different inflectional forms. For instance, the word,
+        "Compute" can take the forms, "computing", "computation",  and
+        "computerize". The NLP applications such as Search Engines and
+        Information Extraction would want to store the base or stem of the
+        word, i.e "Compute" instead of accomodating all its inflected forms.
+        This will yield in dimensionality reduction and incerases the
+        efficiency of the system. The stemmer cuts the prefix and suffix of a
+        word. 
+         # Languages covered:
+          Our stemmer works for the following  26 languages. 
+          
+        | Languages    | ISO Code   |
+        |--------------|------------|
+        |  Arabic      |  ar        |
+        |  Catalan     |  ca        |
+        |  Danish      |  da        |
+        |  German      |  de        |
+        |  Greek       |  el        |
+        |  English     |  en        |
+        |  Spanish     |  es        |
+        |  Basque      |  eu        |
+        |  Finnish     |  fi        |
+        |  French      |  fr        |
+        |  Irish       |  ga        |
+        |  Hindi       |  hi        |
+        |  Hungarian   |  hu        |
+        |  Indonesian  |  id        |
+        |  Italian     |  it        |
+        |  Lithuanian  |  lt        |
+        |  Nepali      |  ne        |
+        |  Dutch       |  nl        |
+        |  Norwegian   |  no        |
+        |  Portuguese  |  pt        |
+        |  Romanian    |  ro        |
+        |  Russian     |  ru        |
+        |  Serbian     |  sr        |
+        |  Swedish     |  sv        |
+        |  Tamil       |  ta        |
+        |  Turkish     |  tr        |
+
+        Args:
+            body (object): Add a JSON Input as per the schema defined below 
+                **Size limit:**   1MB for both text and URL input  **URL
+                Input:**  For URL, we now accept 4 contentTypes. * html *
+                plaintext * pdf * docx  If you are providing Google drive or
+                Google Spreadsheet url, ensure that you provide a link which
+                can download the file directly and not the share link. 
+                Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            list of Responsestem: Response from the API. Stemmed output.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/stemmer'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Error output', _response)
+        elif _response.status_code == 426:
+            raise ApiStemmer426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, Responsestem.from_dictionary)
+
+        return decoded
+
+    def get_lemma(self,
+                  body):
+        """Does a POST request to /api/lemmatize.
+
+        Lemmatizer is similar to stemmer that gives the stemmed version of a
+        word but lemmatizer differs from the stemmer in giving a meaningful
+        stem or the lemma. For instance, for the word, "smiling", the stemmer
+        would give, "smil", stemming the suffix, "ing" but the lemmatizer
+        would give the meaningful stem, "smile". lemmatizers can be used in
+        applications such as,  Machine Translation, Search Engines, Text
+        Summarization etc.
+        # Languages covered:
+        | Languages          | ISO Code |
+        |--------------------|----------|
+        | Catalan            | ca       |
+        | Danish             | da       |
+        | Dutch              | nl       |
+        | English            | en       |
+        | French             | fr       |
+        | German             | de       |
+        | Greek              | el       |
+        | Italian            | it       |
+        | Lithuanian         | lt       |
+        | Macedonian         | mk       |
+        | Norwegian (Bokmål) | nb       |
+        | Polish             | pl       |
+        | Portuguese         | pt       |
+        | Romanian           | ro       |
+        | Russian            | ru       |
+        | Spanish            | es       |
+
+        Args:
+            body (object): Add a JSON Input as per the schema defined below 
+                **Size limit:**   1MB for both text and URL input  **URL
+                Input:**  For URL, we now accept 4 contentTypes. * html *
+                plaintext * pdf * docx  If you are providing Google drive or
+                Google Spreadsheet url, ensure that you provide a link which
+                can download the file directly and not the share link. 
+                Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            list of Responselemma: Response from the API. Lemmatized output.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/lemmatize'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Error output', _response)
+        elif _response.status_code == 426:
+            raise ApiLemmatize426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, Responselemma.from_dictionary)
+
+        return decoded
+
+    def get_morph(self,
+                  body):
+        """Does a POST request to /api/morph.
+
+        Morphological Analyzer analyzes how a word is formed. It breaks a word
+        into smaller units called, "morphemes" and gives a clue on the pattern
+        of words of a particular langauge.  It can be used for building
+        applications such as,  Machine Translation, Text Summarization, Search
+        systems etc. 
+        # Languages covered:
+        | Languages          | ISO Code |
+        |--------------------|----------|
+        | Catalan            | ca       |
+        | Danish             | da       |
+        | Dutch              | nl       |
+        | English            | en       |
+        | French             | fr       |
+        | German             | de       |
+        | Greek              | el       |
+        | Italian            | it       |
+        | Japanese           | ja       |
+        | Lithuanian         | lt       |
+        | Macedonian         | mk       |
+        | Norwegian (Bokmål) | nb       |
+        | Polish             | pl       |
+        | Portuguese         | pt       |
+        | Russian            | ru       |
+        | Spanish            | es       |
+
+        Args:
+            body (object): Add a JSON Input as per the schema defined below 
+                **Size limit:**   1MB for both text and URL input  **URL
+                Input:**  For URL, we now accept 4 contentTypes. * html *
+                plaintext * pdf * docx  If you are providing Google drive or
+                Google Spreadsheet url, ensure that you provide a link which
+                can download the file directly and not the share link. 
+                Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            Responsemorph: Response from the API. Morphological output.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/morph'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Error output', _response)
+        elif _response.status_code == 426:
+            raise ApiMorph426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, Responsemorph.from_dictionary)
+
+        return decoded
+
+    def get_postag(self,
+                   body):
+        """Does a POST request to /api/postag.
+
+        Parts of Speech Tagger, which is shortly known as POS Tagger is a
+        software that automatically finds the word classes, when a text input
+        is given. The text input can be a word, a sentence or a set of
+        sentences. The word classes are the grammatical categories such as,
+        Noun, Verb, Adverb etc. The category assigned to each word is called
+        as a tag. A set of tags, each indicating a grammatical category is
+        called, "tagsets". POS tagging is a mandatory pre-processing for most
+        of the Natural Language Processing Applications such as, Information
+        Extraction, Information Retreival systems and Summary generation
+        systems. A POS Tagger is a language-dependent software as the grammar
+        rules will differ for every language. For instance, a word ending with
+        "ing" might indicate a "Verb" in English but this will not be
+        applicable for other languages. 
+        # Languages covered:
+        | Languages          | ISO Code |
+        |--------------------|----------|
+        | Chinese            | zh       |
+        | Dutch              | nl       |
+        | English            | en       |
+        | German             | de       |
+        | Italian            | it       |
+        | Lithuanian         | lt       |
+        | Polish             | pl       |
+        | Romanian           | ro       |
+        | Tamil              | ta       |
+         
+
+        Args:
+            body (object): Add a JSON Input as per the schema defined below 
+                **Size limit:**   1MB for both text and URL input  **URL
+                Input:**  For URL, we now accept 4 contentTypes. * html *
+                plaintext * pdf * docx  If you are providing Google drive or
+                Google Spreadsheet url, ensure that you provide a link which
+                can download the file directly and not the share link. 
+                Example for Google Drive link:  
+                https://drive.google.com/uc?id=idofthefile
+
+        Returns:
+            list of Responsepo: Response from the API. POSTAG output.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/postag'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Error output', _response)
+        elif _response.status_code == 426:
+            raise ApiPostag426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, Responsepo.from_dictionary)
+
+        return decoded
diff --git a/firstlanguage_python/controllers/enterprise_only_controller.py b/firstlanguage_python/controllers/enterprise_only_controller.py
new file mode 100644
index 0000000..e7d81d2
--- /dev/null
+++ b/firstlanguage_python/controllers/enterprise_only_controller.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+from firstlanguage_python.configuration import Server
+from firstlanguage_python.controllers.base_controller import BaseController
+from firstlanguage_python.models.api_question_response import ApiQuestionResponse
+from firstlanguage_python.exceptions.errors_exception import ErrorsException
+from firstlanguage_python.exceptions.m_426_error_exception import M426ErrorException
+from firstlanguage_python.exceptions.api_exception import APIException
+
+
+class EnterpriseOnlyController(BaseController):
+
+    """A Controller to access Endpoints in the firstlanguage_python API."""
+    def __init__(self, config, auth_managers, call_back=None):
+        super(EnterpriseOnlyController, self).__init__(config, auth_managers, call_back)
+
+    def get_qa_enterprise(self,
+                          body=None):
+        """Does a POST request to /api/question.
+
+        A Question Answering System retrieves the answer relevant to the
+        question given by the user. A question answering system can be used
+        for building a text based chatbots, search engines etc. Our question
+        answering system  is mutilingual and supports 100 + languages. Please
+        use ISO 639-2 2 digit language code  to get results. For example, use
+        'en' for English, 'ta' for Tamil, 'hi' for Hindi, 'fr' for French
+        etc.
+        For ISO code reference, please check the link
+        https://www.loc.gov/standards/iso639-2/php/code_list.php
+        For enterprise, the context for the questions will be stored in
+        memory. The context can be read from wide range of file and any number
+        of files.
+
+        Args:
+            body (ApiQuestionRequest, optional): Add a JSON Input as per the
+                schema defined below
+
+        Returns:
+            ApiQuestionResponse: Response from the API. Answer for the
+                question posted.
+
+        Raises:
+            APIException: When an error occurs while fetching the data from
+                the remote API. This exception includes the HTTP Response
+                code, an error message, and the HTTP body that was received in
+                the request.
+
+        """
+
+        # Prepare query URL
+        _url_path = '/api/question'
+        _query_builder = self.config.get_base_uri()
+        _query_builder += _url_path
+        _query_url = APIHelper.clean_url(_query_builder)
+
+        # Prepare headers
+        _headers = {
+            'accept': 'application/json',
+            'Content-Type': 'application/json'
+        }
+
+        # Prepare and execute request
+        _request = self.config.http_client.post(_query_url, headers=_headers, parameters=APIHelper.json_serialize(body))
+        # Apply authentication scheme on request
+        self.apply_auth_schemes(_request, 'global')
+
+        _response = self.execute_request(_request)
+
+        # Endpoint and global error handling using HTTP status codes.
+        if _response.status_code == 400:
+            raise ErrorsException('Bad Request', _response)
+        elif _response.status_code == 426:
+            raise M426ErrorException('Please use HTTPS protocol', _response)
+        elif _response.status_code == 429:
+            raise APIException('Too Many Requests', _response)
+        self.validate_response(_response)
+
+        decoded = APIHelper.json_deserialize(_response.text, ApiQuestionResponse.from_dictionary)
+
+        return decoded
diff --git a/firstlanguage_python/decorators.py b/firstlanguage_python/decorators.py
new file mode 100644
index 0000000..cc33b83
--- /dev/null
+++ b/firstlanguage_python/decorators.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+
+class lazy_property(object):
+
+    """A decorator class for lazy instantiation."""
+
+    def __init__(self, fget):
+        self.fget = fget
+        self.func_name = fget.__name__
+
+    def __get__(self, obj, cls):
+        if obj is None:
+            return None
+        value = self.fget(obj)
+        setattr(obj, self.func_name, value)
+        return value
diff --git a/firstlanguage_python/exceptions/__init__.py b/firstlanguage_python/exceptions/__init__.py
new file mode 100644
index 0000000..9db4cbc
--- /dev/null
+++ b/firstlanguage_python/exceptions/__init__.py
@@ -0,0 +1,10 @@
+__all__ = [
+    'api_exception',
+    'errors_exception',
+    'm_426_error_exception',
+    'api_classify_426_error_exception',
+    'api_lemmatize_426_error_exception',
+    'api_morph_426_error_exception',
+    'api_postag_426_error_exception',
+    'api_stemmer_426_error_exception',
+]
diff --git a/firstlanguage_python/exceptions/__pycache__/__init__.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..bdf5bf4
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/__init__.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/__pycache__/api_classify_426_error_exception.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/api_classify_426_error_exception.cpython-39.pyc
new file mode 100644
index 0000000..746f9e4
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/api_classify_426_error_exception.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/__pycache__/api_exception.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/api_exception.cpython-39.pyc
new file mode 100644
index 0000000..57b265b
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/api_exception.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/__pycache__/api_lemmatize_426_error_exception.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/api_lemmatize_426_error_exception.cpython-39.pyc
new file mode 100644
index 0000000..777f4d2
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/api_lemmatize_426_error_exception.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/__pycache__/api_morph_426_error_exception.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/api_morph_426_error_exception.cpython-39.pyc
new file mode 100644
index 0000000..6043983
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/api_morph_426_error_exception.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/__pycache__/api_postag_426_error_exception.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/api_postag_426_error_exception.cpython-39.pyc
new file mode 100644
index 0000000..ded934b
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/api_postag_426_error_exception.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/__pycache__/api_stemmer_426_error_exception.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/api_stemmer_426_error_exception.cpython-39.pyc
new file mode 100644
index 0000000..51b101b
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/api_stemmer_426_error_exception.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/__pycache__/errors_exception.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/errors_exception.cpython-39.pyc
new file mode 100644
index 0000000..4858612
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/errors_exception.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/__pycache__/m_426_error_exception.cpython-39.pyc b/firstlanguage_python/exceptions/__pycache__/m_426_error_exception.cpython-39.pyc
new file mode 100644
index 0000000..77d91ab
Binary files /dev/null and b/firstlanguage_python/exceptions/__pycache__/m_426_error_exception.cpython-39.pyc differ
diff --git a/firstlanguage_python/exceptions/api_classify_426_error_exception.py b/firstlanguage_python/exceptions/api_classify_426_error_exception.py
new file mode 100644
index 0000000..7ee6b8d
--- /dev/null
+++ b/firstlanguage_python/exceptions/api_classify_426_error_exception.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+import firstlanguage_python.exceptions.api_exception
+
+
+class ApiClassify426ErrorException(firstlanguage_python.exceptions.api_exception.APIException):
+    def __init__(self, reason, response):
+        """Constructor for the ApiClassify426ErrorException class
+
+        Args:
+            reason (string): The reason (or error message) for the Exception
+                to be raised.
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        super(ApiClassify426ErrorException, self).__init__(reason, response)
+        dictionary = APIHelper.json_deserialize(self.response.text)
+        if isinstance(dictionary, dict):
+            self.unbox(dictionary)
+
+    def unbox(self, dictionary):
+        """Populates the properties of this object by extracting them from a dictionary.
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object as
+            obtained from the deserialization of the server's response. The keys
+            MUST match property names in the API description.
+
+        """
+        self.message = dictionary.get('message')
diff --git a/firstlanguage_python/exceptions/api_exception.py b/firstlanguage_python/exceptions/api_exception.py
new file mode 100644
index 0000000..f5d266c
--- /dev/null
+++ b/firstlanguage_python/exceptions/api_exception.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+
+class APIException(Exception):
+
+    """Class that handles HTTP Exceptions when fetching API Endpoints.
+
+    Attributes:
+        response_code (int): The status code of the response.
+        response (HttpResponse): The HttpResponse of the API call.
+
+    """
+
+    def __init__(self,
+                 reason,
+                 response):
+        """Constructor for the APIException class
+
+        Args:
+            reason (string): The reason (or error message) for the Exception
+                to be raised.
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        super(APIException, self).__init__(reason)
+        self.reason = reason
+        self.response = response
+        self.response_code = response.status_code
diff --git a/firstlanguage_python/exceptions/api_lemmatize_426_error_exception.py b/firstlanguage_python/exceptions/api_lemmatize_426_error_exception.py
new file mode 100644
index 0000000..1532400
--- /dev/null
+++ b/firstlanguage_python/exceptions/api_lemmatize_426_error_exception.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+import firstlanguage_python.exceptions.api_exception
+
+
+class ApiLemmatize426ErrorException(firstlanguage_python.exceptions.api_exception.APIException):
+    def __init__(self, reason, response):
+        """Constructor for the ApiLemmatize426ErrorException class
+
+        Args:
+            reason (string): The reason (or error message) for the Exception
+                to be raised.
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        super(ApiLemmatize426ErrorException, self).__init__(reason, response)
+        dictionary = APIHelper.json_deserialize(self.response.text)
+        if isinstance(dictionary, dict):
+            self.unbox(dictionary)
+
+    def unbox(self, dictionary):
+        """Populates the properties of this object by extracting them from a dictionary.
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object as
+            obtained from the deserialization of the server's response. The keys
+            MUST match property names in the API description.
+
+        """
+        self.message = dictionary.get('message')
diff --git a/firstlanguage_python/exceptions/api_morph_426_error_exception.py b/firstlanguage_python/exceptions/api_morph_426_error_exception.py
new file mode 100644
index 0000000..03ec56f
--- /dev/null
+++ b/firstlanguage_python/exceptions/api_morph_426_error_exception.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+import firstlanguage_python.exceptions.api_exception
+
+
+class ApiMorph426ErrorException(firstlanguage_python.exceptions.api_exception.APIException):
+    def __init__(self, reason, response):
+        """Constructor for the ApiMorph426ErrorException class
+
+        Args:
+            reason (string): The reason (or error message) for the Exception
+                to be raised.
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        super(ApiMorph426ErrorException, self).__init__(reason, response)
+        dictionary = APIHelper.json_deserialize(self.response.text)
+        if isinstance(dictionary, dict):
+            self.unbox(dictionary)
+
+    def unbox(self, dictionary):
+        """Populates the properties of this object by extracting them from a dictionary.
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object as
+            obtained from the deserialization of the server's response. The keys
+            MUST match property names in the API description.
+
+        """
+        self.message = dictionary.get('message')
diff --git a/firstlanguage_python/exceptions/api_postag_426_error_exception.py b/firstlanguage_python/exceptions/api_postag_426_error_exception.py
new file mode 100644
index 0000000..6f5e6ac
--- /dev/null
+++ b/firstlanguage_python/exceptions/api_postag_426_error_exception.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+import firstlanguage_python.exceptions.api_exception
+
+
+class ApiPostag426ErrorException(firstlanguage_python.exceptions.api_exception.APIException):
+    def __init__(self, reason, response):
+        """Constructor for the ApiPostag426ErrorException class
+
+        Args:
+            reason (string): The reason (or error message) for the Exception
+                to be raised.
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        super(ApiPostag426ErrorException, self).__init__(reason, response)
+        dictionary = APIHelper.json_deserialize(self.response.text)
+        if isinstance(dictionary, dict):
+            self.unbox(dictionary)
+
+    def unbox(self, dictionary):
+        """Populates the properties of this object by extracting them from a dictionary.
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object as
+            obtained from the deserialization of the server's response. The keys
+            MUST match property names in the API description.
+
+        """
+        self.message = dictionary.get('message')
diff --git a/firstlanguage_python/exceptions/api_stemmer_426_error_exception.py b/firstlanguage_python/exceptions/api_stemmer_426_error_exception.py
new file mode 100644
index 0000000..0021870
--- /dev/null
+++ b/firstlanguage_python/exceptions/api_stemmer_426_error_exception.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+import firstlanguage_python.exceptions.api_exception
+
+
+class ApiStemmer426ErrorException(firstlanguage_python.exceptions.api_exception.APIException):
+    def __init__(self, reason, response):
+        """Constructor for the ApiStemmer426ErrorException class
+
+        Args:
+            reason (string): The reason (or error message) for the Exception
+                to be raised.
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        super(ApiStemmer426ErrorException, self).__init__(reason, response)
+        dictionary = APIHelper.json_deserialize(self.response.text)
+        if isinstance(dictionary, dict):
+            self.unbox(dictionary)
+
+    def unbox(self, dictionary):
+        """Populates the properties of this object by extracting them from a dictionary.
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object as
+            obtained from the deserialization of the server's response. The keys
+            MUST match property names in the API description.
+
+        """
+        self.message = dictionary.get('message')
diff --git a/firstlanguage_python/exceptions/errors_exception.py b/firstlanguage_python/exceptions/errors_exception.py
new file mode 100644
index 0000000..c7eff4c
--- /dev/null
+++ b/firstlanguage_python/exceptions/errors_exception.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+import firstlanguage_python.exceptions.api_exception
+from firstlanguage_python.models.errors_1 import Errors1
+
+
+class ErrorsException(firstlanguage_python.exceptions.api_exception.APIException):
+    def __init__(self, reason, response):
+        """Constructor for the ErrorsException class
+
+        Args:
+            reason (string): The reason (or error message) for the Exception
+                to be raised.
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        super(ErrorsException, self).__init__(reason, response)
+        dictionary = APIHelper.json_deserialize(self.response.text)
+        if isinstance(dictionary, dict):
+            self.unbox(dictionary)
+
+    def unbox(self, dictionary):
+        """Populates the properties of this object by extracting them from a dictionary.
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object as
+            obtained from the deserialization of the server's response. The keys
+            MUST match property names in the API description.
+
+        """
+        self.errors = None
+        if dictionary.get('errors') is not None:
+            self.errors = [Errors1.from_dictionary(x) for x in dictionary.get('errors')]
diff --git a/firstlanguage_python/exceptions/m_426_error_exception.py b/firstlanguage_python/exceptions/m_426_error_exception.py
new file mode 100644
index 0000000..0f18f0f
--- /dev/null
+++ b/firstlanguage_python/exceptions/m_426_error_exception.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+import firstlanguage_python.exceptions.api_exception
+
+
+class M426ErrorException(firstlanguage_python.exceptions.api_exception.APIException):
+    def __init__(self, reason, response):
+        """Constructor for the M426ErrorException class
+
+        Args:
+            reason (string): The reason (or error message) for the Exception
+                to be raised.
+            response (HttpResponse): The HttpResponse of the API call.
+
+        """
+        super(M426ErrorException, self).__init__(reason, response)
+        dictionary = APIHelper.json_deserialize(self.response.text)
+        if isinstance(dictionary, dict):
+            self.unbox(dictionary)
+
+    def unbox(self, dictionary):
+        """Populates the properties of this object by extracting them from a dictionary.
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object as
+            obtained from the deserialization of the server's response. The keys
+            MUST match property names in the API description.
+
+        """
+        self.message = dictionary.get('message')
diff --git a/firstlanguage_python/firstlanguage_client.py b/firstlanguage_python/firstlanguage_client.py
new file mode 100644
index 0000000..44ea9a7
--- /dev/null
+++ b/firstlanguage_python/firstlanguage_client.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.decorators import lazy_property
+from firstlanguage_python.configuration import Configuration
+from firstlanguage_python.configuration import Environment
+from firstlanguage_python.http.auth.custom_header_authentication import CustomHeaderAuthentication
+from firstlanguage_python.controllers.basic_api_controller\
+    import BasicAPIsController
+from firstlanguage_python.controllers.advanced_api_controller\
+    import AdvancedAPIsController
+from firstlanguage_python.controllers.enterprise_only_controller\
+    import EnterpriseOnlyController
+
+
+class Client(object):
+
+    @lazy_property
+    def basic_api(self):
+        return BasicAPIsController(self.config, self.auth_managers)
+
+    @lazy_property
+    def advanced_api(self):
+        return AdvancedAPIsController(self.config, self.auth_managers)
+
+    @lazy_property
+    def enterprise_only(self):
+        return EnterpriseOnlyController(self.config, self.auth_managers)
+
+    def __init__(self, http_client_instance=None,
+                 override_http_client_configuration=False, timeout=60,
+                 max_retries=0, backoff_factor=2,
+                 retry_statuses=[408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
+                 retry_methods=['GET', 'PUT'],
+                 environment=Environment.PRODUCTION, apikey='TODO: Replace',
+                 config=None):
+        if config is None:
+            self.config = Configuration(
+                                         http_client_instance=http_client_instance,
+                                         override_http_client_configuration=override_http_client_configuration,
+                                         timeout=timeout,
+                                         max_retries=max_retries,
+                                         backoff_factor=backoff_factor,
+                                         retry_statuses=retry_statuses,
+                                         retry_methods=retry_methods,
+                                         environment=environment, apikey=apikey)
+        else:
+            self.config = config
+        self.initialize_auth_managers(self.config)
+
+    def initialize_auth_managers(self, config):
+        self.auth_managers = { key: None for key in ['global']}
+        self.auth_managers['global'] = CustomHeaderAuthentication(config.apikey)
+        return self.auth_managers
diff --git a/firstlanguage_python/http/__init__.py b/firstlanguage_python/http/__init__.py
new file mode 100644
index 0000000..4348222
--- /dev/null
+++ b/firstlanguage_python/http/__init__.py
@@ -0,0 +1,9 @@
+__all__ = [
+    'auth',
+    'http_method_enum',
+    'http_request',
+    'http_response',
+    'http_client',
+    'requests_client',
+    'http_call_back',
+]
diff --git a/firstlanguage_python/http/__pycache__/__init__.cpython-39.pyc b/firstlanguage_python/http/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..d60f0ca
Binary files /dev/null and b/firstlanguage_python/http/__pycache__/__init__.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/__pycache__/http_call_back.cpython-39.pyc b/firstlanguage_python/http/__pycache__/http_call_back.cpython-39.pyc
new file mode 100644
index 0000000..0b25e9d
Binary files /dev/null and b/firstlanguage_python/http/__pycache__/http_call_back.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/__pycache__/http_client.cpython-39.pyc b/firstlanguage_python/http/__pycache__/http_client.cpython-39.pyc
new file mode 100644
index 0000000..f83e36f
Binary files /dev/null and b/firstlanguage_python/http/__pycache__/http_client.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/__pycache__/http_method_enum.cpython-39.pyc b/firstlanguage_python/http/__pycache__/http_method_enum.cpython-39.pyc
new file mode 100644
index 0000000..62be49b
Binary files /dev/null and b/firstlanguage_python/http/__pycache__/http_method_enum.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/__pycache__/http_request.cpython-39.pyc b/firstlanguage_python/http/__pycache__/http_request.cpython-39.pyc
new file mode 100644
index 0000000..d22e540
Binary files /dev/null and b/firstlanguage_python/http/__pycache__/http_request.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/__pycache__/http_response.cpython-39.pyc b/firstlanguage_python/http/__pycache__/http_response.cpython-39.pyc
new file mode 100644
index 0000000..f3e4ada
Binary files /dev/null and b/firstlanguage_python/http/__pycache__/http_response.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/__pycache__/requests_client.cpython-39.pyc b/firstlanguage_python/http/__pycache__/requests_client.cpython-39.pyc
new file mode 100644
index 0000000..95202d7
Binary files /dev/null and b/firstlanguage_python/http/__pycache__/requests_client.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/auth/__init__.py b/firstlanguage_python/http/auth/__init__.py
new file mode 100644
index 0000000..d530d06
--- /dev/null
+++ b/firstlanguage_python/http/auth/__init__.py
@@ -0,0 +1,3 @@
+__all__ = [
+    'custom_header_authentication',
+]
diff --git a/firstlanguage_python/http/auth/__pycache__/__init__.cpython-39.pyc b/firstlanguage_python/http/auth/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..2d12add
Binary files /dev/null and b/firstlanguage_python/http/auth/__pycache__/__init__.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/auth/__pycache__/custom_header_auth.cpython-39.pyc b/firstlanguage_python/http/auth/__pycache__/custom_header_auth.cpython-39.pyc
new file mode 100644
index 0000000..dc68234
Binary files /dev/null and b/firstlanguage_python/http/auth/__pycache__/custom_header_auth.cpython-39.pyc differ
diff --git a/firstlanguage_python/http/auth/custom_header_authentication.py b/firstlanguage_python/http/auth/custom_header_authentication.py
new file mode 100644
index 0000000..44dd96c
--- /dev/null
+++ b/firstlanguage_python/http/auth/custom_header_authentication.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+
+class CustomHeaderAuthentication:
+
+    def __init__(self, apikey):
+        self._apikey = apikey
+
+    def validate_arguments(self):
+        if self._apikey:
+            return True
+        return False
+
+    def apply(self, http_request):
+        """ Add custom authentication to the request.
+
+        Args:
+            http_request (HttpRequest): The HttpRequest object to which
+                authentication will be added.
+
+        """
+        http_request.add_header("apikey", self._apikey)
+
+    def error_message(self):
+        """Display error message on occurrence of authentication faliure
+        in CustomHeaderAuthentication
+
+        """
+        return "CustomHeaderAuthentication: _apikey is undefined."
diff --git a/firstlanguage_python/http/http_call_back.py b/firstlanguage_python/http/http_call_back.py
new file mode 100644
index 0000000..4c2929d
--- /dev/null
+++ b/firstlanguage_python/http/http_call_back.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+
+class HttpCallBack(object):
+
+    """An interface for  the callback to be called before and after the
+    HTTP call for an endpoint is made.
+
+    This class should not be instantiated but should be used as a base class
+    for HttpCallBack classes.
+
+    """
+
+    def on_before_request(self,
+                          request):
+        """The controller will call this method before making the HttpRequest.
+
+        Args:
+            request (HttpRequest): The request object which will be sent
+                to the HttpClient to be executed.
+        """
+        raise NotImplementedError("This method has not been implemented.")
+
+    def on_after_response(self,
+                          http_response):
+        """The controller will call this method after making the HttpRequest.
+
+        Args:
+            http_response (HttpResponse): The HttpResponse of the API call.
+        """
+        raise NotImplementedError("This method has not been implemented.")
diff --git a/firstlanguage_python/http/http_client.py b/firstlanguage_python/http/http_client.py
new file mode 100644
index 0000000..468c058
--- /dev/null
+++ b/firstlanguage_python/http/http_client.py
@@ -0,0 +1,210 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.http.http_method_enum import HttpMethodEnum
+from firstlanguage_python.http.http_request import HttpRequest
+
+
+class HttpClient(object):
+
+    """An interface for the methods that an HTTP Client must implement
+
+    This class should not be instantiated but should be used as a base class
+    for HTTP Client classes.
+
+    """
+
+    def execute_as_string(self, request):
+        """Execute a given HttpRequest to get a string response back
+
+        Args:
+            request (HttpRequest): The given HttpRequest to execute.
+
+        Returns:
+            HttpResponse: The response of the HttpRequest.
+
+        """
+        raise NotImplementedError("Please Implement this method")
+
+    def execute_as_binary(self, request):
+        """Execute a given HttpRequest to get a binary response back
+
+        Args:
+            request (HttpRequest): The given HttpRequest to execute.
+
+        Returns:
+            HttpResponse: The response of the HttpRequest.
+
+        """
+        raise NotImplementedError("Please Implement this method")
+
+    def convert_response(self, response, binary):
+        """Converts the Response object of the HttpClient into an
+        HttpResponse object.
+
+        Args:
+            response (dynamic): The original response object.
+
+        Returns:
+            HttpResponse: The converted HttpResponse object.
+
+        """
+        raise NotImplementedError("Please Implement this method")
+
+    def get(self, query_url,
+            headers={},
+            query_parameters={}):
+        """Create a simple GET HttpRequest object for the given parameters
+
+        Args:
+            query_url (string): The URL to send the request to.
+            headers (dict, optional): The headers for the HTTP Request.
+            query_parameters (dict, optional): Query parameters to add in the
+                URL.
+
+        Returns:
+            HttpRequest: The generated HttpRequest for the given paremeters.
+
+        """
+        return HttpRequest(HttpMethodEnum.GET,
+                           query_url,
+                           headers,
+                           query_parameters,
+                           None,
+                           None)
+
+    def head(self, query_url,
+             headers={},
+             query_parameters={}):
+        """Create a simple HEAD HttpRequest object for the given parameters
+
+        Args:
+            query_url (string): The URL to send the request to.
+            headers (dict, optional): The headers for the HTTP Request.
+            query_parameters (dict, optional): Query parameters to add in the
+                URL.
+
+        Returns:
+            HttpRequest: The generated HttpRequest for the given paremeters.
+
+        """
+        return HttpRequest(HttpMethodEnum.HEAD,
+                           query_url,
+                           headers,
+                           query_parameters,
+                           None,
+                           None)
+
+    def post(self, query_url,
+             headers={},
+             query_parameters={},
+             parameters={},
+             files={}):
+        """Create a simple POST HttpRequest object for the given parameters
+
+        Args:
+            query_url (string): The URL to send the request to.
+            headers (dict, optional): The headers for the HTTP Request.
+            query_parameters (dict, optional): Query parameters to add in the
+                URL.
+            parameters (dict, optional): Form or body parameters to be included
+                in the body.
+            files (dict, optional): Files to be sent with the request.
+
+        Returns:
+            HttpRequest: The generated HttpRequest for the given paremeters.
+
+        """
+        return HttpRequest(HttpMethodEnum.POST,
+                           query_url,
+                           headers,
+                           query_parameters,
+                           parameters,
+                           files)
+
+    def put(self, query_url,
+            headers={},
+            query_parameters={},
+            parameters={},
+            files={}):
+        """Create a simple PUT HttpRequest object for the given parameters
+
+        Args:
+            query_url (string): The URL to send the request to.
+            headers (dict, optional): The headers for the HTTP Request.
+            query_parameters (dict, optional): Query parameters to add in the
+                URL.
+            parameters (dict, optional): Form or body parameters to be included
+                in the body.
+            files (dict, optional): Files to be sent with the request.
+
+        Returns:
+            HttpRequest: The generated HttpRequest for the given paremeters.
+
+        """
+        return HttpRequest(HttpMethodEnum.PUT,
+                           query_url,
+                           headers,
+                           query_parameters,
+                           parameters,
+                           files)
+
+    def patch(self, query_url,
+              headers={},
+              query_parameters={},
+              parameters={},
+              files={}):
+        """Create a simple PATCH HttpRequest object for the given parameters
+
+        Args:
+            query_url (string): The URL to send the request to.
+            headers (dict, optional): The headers for the HTTP Request.
+            query_parameters (dict, optional): Query parameters to add in the
+                URL.
+            parameters (dict, optional): Form or body parameters to be included
+                in the body.
+            files (dict, optional): Files to be sent with the request.
+
+        Returns:
+            HttpRequest: The generated HttpRequest for the given paremeters.
+
+        """
+        return HttpRequest(HttpMethodEnum.PATCH,
+                           query_url,
+                           headers,
+                           query_parameters,
+                           parameters,
+                           files)
+
+    def delete(self, query_url,
+               headers={},
+               query_parameters={},
+               parameters={},
+               files={}):
+        """Create a simple DELETE HttpRequest object for the given parameters
+
+        Args:
+            query_url (string): The URL to send the request to.
+            headers (dict, optional): The headers for the HTTP Request.
+            query_parameters (dict, optional): Query parameters to add in the
+                URL.
+            parameters (dict, optional): Form or body parameters to be
+                included in the body.
+            files (dict, optional): Files to be sent with the request.
+
+        Returns:
+            HttpRequest: The generated HttpRequest for the given paremeters.
+
+        """
+        return HttpRequest(HttpMethodEnum.DELETE,
+                           query_url,
+                           headers,
+                           query_parameters,
+                           parameters,
+                           files)
diff --git a/firstlanguage_python/http/http_method_enum.py b/firstlanguage_python/http/http_method_enum.py
new file mode 100644
index 0000000..25a0867
--- /dev/null
+++ b/firstlanguage_python/http/http_method_enum.py
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+
+class HttpMethodEnum(object):
+
+    """Enumeration of an HTTP Method
+
+    Attributes:
+        GET: A GET Request
+        POST: A POST Request
+        PUT: A PUT Request
+        PATCH: A PATCH Request
+        DELETE: A DELETE Request
+
+    """
+
+    GET = "GET"
+
+    POST = "POST"
+
+    PUT = "PUT"
+
+    PATCH = "PATCH"
+
+    DELETE = "DELETE"
+
+    HEAD = "HEAD"
+
+    @classmethod
+    def to_string(cls, val):
+        """Returns the string equivalent for the Enum.
+
+        """
+        for k, v in list(vars(cls).items()):
+            if v == val:
+                return k
+
+    @classmethod
+    def from_string(cls, str):
+        """Creates an instance of the Enum from a given string.
+
+        """
+        return getattr(cls, str.upper(), None)
diff --git a/firstlanguage_python/http/http_request.py b/firstlanguage_python/http/http_request.py
new file mode 100644
index 0000000..a519884
--- /dev/null
+++ b/firstlanguage_python/http/http_request.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.api_helper import APIHelper
+
+
+class HttpRequest(object):
+
+    """Information about an HTTP Request including its method, headers,
+        parameters, URL, and Basic Auth details
+
+    Attributes:
+        http_method (HttpMethodEnum): The HTTP Method that this request should
+            perform when called.
+        headers (dict): A dictionary of headers (key : value) that should be
+            sent along with the request.
+        query_url (string): The URL that the request should be sent to.
+        parameters (dict): A dictionary of parameters that are to be sent along
+            with the request in the form body of the request
+
+    """
+
+    def __init__(self,
+                 http_method,
+                 query_url,
+                 headers=None,
+                 query_parameters=None,
+                 parameters=None,
+                 files=None):
+        """Constructor for the HttpRequest class
+
+        Args:
+            http_method (HttpMethodEnum): The HTTP Method.
+            query_url (string): The URL to send the request to.
+            headers (dict, optional): The headers for the HTTP Request.
+            query_parameters (dict, optional): Query parameters to add in the
+                URL.
+            parameters (dict, optional): Form or body parameters to be included
+                in the body.
+            files (dict, optional): Files to be sent with the request.
+
+        """
+        self.http_method = http_method
+        self.query_url = query_url
+        self.headers = headers
+        self.query_parameters = query_parameters
+        self.parameters = parameters
+        self.files = files
+
+    def add_header(self, name, value):
+        """ Add a header to the HttpRequest.
+
+        Args:
+            name (string): The name of the header.
+            value (string): The value of the header.
+
+        """
+        self.headers[name] = value
+
+    def add_parameter(self, name, value):
+        """ Add a parameter to the HttpRequest.
+
+        Args:
+            name (string): The name of the parameter.
+            value (string): The value of the parameter.
+
+        """
+        self.parameters[name] = value
+
+    def add_query_parameter(self, name, value):
+        """ Add a query parameter to the HttpRequest.
+
+        Args:
+            name (string): The name of the query parameter.
+            value (string): The value of the query parameter.
+
+        """
+        self.query_url = APIHelper.append_url_with_query_parameters(
+            self.query_url,
+            {name: value}
+        )
+        self.query_url = APIHelper.clean_url(self.query_url)
diff --git a/firstlanguage_python/http/http_response.py b/firstlanguage_python/http/http_response.py
new file mode 100644
index 0000000..c4fb881
--- /dev/null
+++ b/firstlanguage_python/http/http_response.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+
+class HttpResponse(object):
+
+    """Information about an HTTP Response including its status code, returned
+        headers, and raw body
+
+    Attributes:
+        status_code (int): The status code response from the server that
+            corresponds to this response.
+        reason_phrase (string): The reason phrase returned by the server.
+        headers (dict): A dictionary of headers (key : value) that were
+            returned with the response
+        text (string): The Raw body of the HTTP Response as a string
+        request (HttpRequest): The request that resulted in this response.
+
+    """
+
+    def __init__(self,
+                 status_code,
+                 reason_phrase,
+                 headers,
+                 text,
+                 request):
+        """Constructor for the HttpResponse class
+
+        Args:
+            status_code (int): The response status code.
+            reason_phrase (string): The response reason phrase.
+            headers (dict): The response headers.
+            text (string): The raw body from the server.
+            request (HttpRequest): The request that resulted in this response.
+
+        """
+        self.status_code = status_code
+        self.reason_phrase = reason_phrase
+        self.headers = headers
+        self.text = text
+        self.request = request
diff --git a/firstlanguage_python/http/requests_client.py b/firstlanguage_python/http/requests_client.py
new file mode 100644
index 0000000..096e1cc
--- /dev/null
+++ b/firstlanguage_python/http/requests_client.py
@@ -0,0 +1,156 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from cachecontrol import CacheControl
+from requests import session
+from requests.adapters import HTTPAdapter
+from urllib3.util.retry import Retry
+
+from firstlanguage_python.http.http_client import HttpClient
+from firstlanguage_python.http.http_method_enum import HttpMethodEnum
+from firstlanguage_python.http.http_response import HttpResponse
+
+
+class RequestsClient(HttpClient):
+
+    """An implementation of HttpClient that uses Requests as its HTTP Client
+
+    Attributes:
+        timeout (int): The default timeout for all API requests.
+
+    """
+
+    def __init__(self,
+                 timeout=60,
+                 cache=False,
+                 max_retries=None,
+                 backoff_factor=None,
+                 retry_statuses=None,
+                 retry_methods=None,
+                 verify=True,
+                 http_client_instance=None,
+                 override_http_client_configuration=False):
+        """The constructor.
+
+        Args:
+            timeout (float): The default global timeout(seconds).
+
+        """
+        if http_client_instance == None:
+            self.create_default_http_cient(timeout, cache, max_retries,
+                                           backoff_factor, retry_statuses,
+                                           retry_methods, verify)
+        else:
+          if override_http_client_configuration == True:
+            http_client_instance.timeout = timeout
+            http_client_instance.session.verify = verify
+            adapters = http_client_instance.session.adapters
+            for adapter in adapters.values():
+                adapter.max_retries.total = max_retries
+                adapter.max_retries.backoff_factor = backoff_factor
+                adapter.max_retries.status_forcelist = retry_statuses
+                adapter.max_retries.allowed_methods = retry_methods        
+
+          self.timeout = http_client_instance.timeout
+          self.session = http_client_instance.session 
+
+    def create_default_http_cient(self,
+                                  timeout=60,
+                                  cache=False,
+                                  max_retries=None,
+                                  backoff_factor=None,
+                                  retry_statuses=None,
+                                  retry_methods=None,
+                                  verify=True):
+        self.timeout = timeout
+        self.session = session()
+
+        retries = Retry(total=max_retries, backoff_factor=backoff_factor,
+                        status_forcelist=retry_statuses, allowed_methods=retry_methods)
+        self.session.mount('http://', HTTPAdapter(max_retries=retries))
+        self.session.mount('https://', HTTPAdapter(max_retries=retries))
+
+        if cache:
+            self.session = CacheControl(self.session)
+
+        self.session.verify = verify
+
+    def execute_as_string(self, request):
+        """Execute a given HttpRequest to get a string response back
+
+        Args:
+            request (HttpRequest): The given HttpRequest to execute.
+
+        Returns:
+            HttpResponse: The response of the HttpRequest.
+
+        """
+        response = self.session.request(
+            HttpMethodEnum.to_string(request.http_method),
+            request.query_url,
+            headers=request.headers,
+            params=request.query_parameters,
+            data=request.parameters,
+            files=request.files,
+            timeout=self.timeout
+        )
+
+        return self.convert_response(response, False, request)
+
+    def execute_as_binary(self, request):
+        """Execute a given HttpRequest to get a binary response back
+
+        Args:
+            request (HttpRequest): The given HttpRequest to execute.
+
+        Returns:
+            HttpResponse: The response of the HttpRequest.
+
+        """
+
+        response = self.session.request(
+            HttpMethodEnum.to_string(request.http_method),
+            request.query_url,
+            headers=request.headers,
+            params=request.query_parameters,
+            data=request.parameters,
+            files=request.files,
+            timeout=self.timeout
+        )
+
+        return self.convert_response(response, True, request)
+
+    def convert_response(self, response, binary, http_request):
+        """Converts the Response object of the HttpClient into an
+        HttpResponse object.
+
+        Args:
+            response (dynamic): The original response object.
+            http_request (HttpRequest): The original HttpRequest object.
+
+        Returns:
+            HttpResponse: The converted HttpResponse object.
+
+        """
+        if binary:
+            return HttpResponse(
+                response.status_code,
+                response.reason,
+                response.headers,
+                response.content,
+                http_request
+            )
+        else:
+            return HttpResponse(
+                response.status_code,
+                response.reason,
+                response.headers,
+                response.text,
+                http_request
+            )
diff --git a/firstlanguage_python/models/__init__.py b/firstlanguage_python/models/__init__.py
new file mode 100644
index 0000000..1972efc
--- /dev/null
+++ b/firstlanguage_python/models/__init__.py
@@ -0,0 +1,50 @@
+__all__ = [
+    'responseclassify',
+    'responsemorph',
+    'text_input',
+    'text_input_classify',
+    'text_input_tamil',
+    'url_input',
+    'url_input_classify',
+    'api_imagecaption_request',
+    'api_imagecaption_response',
+    'api_ner_request',
+    'api_ner_request_1',
+    'api_ner_response',
+    'api_qa_request',
+    'api_qa_request_1',
+    'api_qa_response',
+    'api_question_request',
+    'api_question_response',
+    'api_summary_request',
+    'api_summary_request_1',
+    'api_summary_response',
+    'api_tableqa_request',
+    'api_tableqa_request_1',
+    'api_tableqa_response',
+    'api_translate_request',
+    'api_translate_request_1',
+    'api_translate_response',
+    'errors_1',
+    'input',
+    'input_1',
+    'input_2',
+    'input_3',
+    'input_4',
+    'input_5',
+    'input_6',
+    'input_7',
+    'input_8',
+    'input_9',
+    'input_10',
+    'input_11',
+    'input_12',
+    'input_13',
+    'input_14',
+    'input_15',
+    'input_16',
+    'original_string',
+    'responselemma',
+    'responsepo',
+    'responsestem',
+]
diff --git a/firstlanguage_python/models/__pycache__/__init__.cpython-39.pyc b/firstlanguage_python/models/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..fac9031
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/__init__.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/api_ner_response.cpython-39.pyc b/firstlanguage_python/models/__pycache__/api_ner_response.cpython-39.pyc
new file mode 100644
index 0000000..0014567
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/api_ner_response.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/api_qa_response.cpython-39.pyc b/firstlanguage_python/models/__pycache__/api_qa_response.cpython-39.pyc
new file mode 100644
index 0000000..3152f51
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/api_qa_response.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/api_summary_response.cpython-39.pyc b/firstlanguage_python/models/__pycache__/api_summary_response.cpython-39.pyc
new file mode 100644
index 0000000..c6a6ea8
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/api_summary_response.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/api_translate_response.cpython-39.pyc b/firstlanguage_python/models/__pycache__/api_translate_response.cpython-39.pyc
new file mode 100644
index 0000000..94e3dc6
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/api_translate_response.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/errors_1.cpython-39.pyc b/firstlanguage_python/models/__pycache__/errors_1.cpython-39.pyc
new file mode 100644
index 0000000..330864a
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/errors_1.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/orignal_string.cpython-39.pyc b/firstlanguage_python/models/__pycache__/orignal_string.cpython-39.pyc
new file mode 100644
index 0000000..32ae541
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/orignal_string.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/responseclassify.cpython-39.pyc b/firstlanguage_python/models/__pycache__/responseclassify.cpython-39.pyc
new file mode 100644
index 0000000..0f6ff07
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/responseclassify.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/responselemma.cpython-39.pyc b/firstlanguage_python/models/__pycache__/responselemma.cpython-39.pyc
new file mode 100644
index 0000000..623d1c0
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/responselemma.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/responsemorph.cpython-39.pyc b/firstlanguage_python/models/__pycache__/responsemorph.cpython-39.pyc
new file mode 100644
index 0000000..2e57201
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/responsemorph.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/responsepo.cpython-39.pyc b/firstlanguage_python/models/__pycache__/responsepo.cpython-39.pyc
new file mode 100644
index 0000000..3dc112b
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/responsepo.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/__pycache__/responsestem.cpython-39.pyc b/firstlanguage_python/models/__pycache__/responsestem.cpython-39.pyc
new file mode 100644
index 0000000..b50527e
Binary files /dev/null and b/firstlanguage_python/models/__pycache__/responsestem.cpython-39.pyc differ
diff --git a/firstlanguage_python/models/api_imagecaption_request.py b/firstlanguage_python/models/api_imagecaption_request.py
new file mode 100644
index 0000000..e43c3db
--- /dev/null
+++ b/firstlanguage_python/models/api_imagecaption_request.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_9 import Input9
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiImagecaptionRequest(object):
+
+    """Implementation of the 'Api Imagecaption Request' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input9): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiImagecaptionRequest class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input9.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_imagecaption_response.py b/firstlanguage_python/models/api_imagecaption_response.py
new file mode 100644
index 0000000..557a3c5
--- /dev/null
+++ b/firstlanguage_python/models/api_imagecaption_response.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiImagecaptionResponse(object):
+
+    """Implementation of the 'Api Imagecaption Response' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        generated_caption (string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "generated_caption": 'generated_caption'
+    }
+
+    def __init__(self,
+                 generated_caption=None):
+        """Constructor for the ApiImagecaptionResponse class"""
+
+        # Initialize members of the class
+        self.generated_caption = generated_caption
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        generated_caption = dictionary.get('generated_caption')
+
+        # Return an object of this model
+        return cls(generated_caption)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_ner_request.py b/firstlanguage_python/models/api_ner_request.py
new file mode 100644
index 0000000..f1ef451
--- /dev/null
+++ b/firstlanguage_python/models/api_ner_request.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_11 import Input11
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiNerRequest(object):
+
+    """Implementation of the 'Api Ner Request' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input11): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiNerRequest class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input11.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_ner_request_1.py b/firstlanguage_python/models/api_ner_request_1.py
new file mode 100644
index 0000000..00d5c14
--- /dev/null
+++ b/firstlanguage_python/models/api_ner_request_1.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_12 import Input12
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiNerRequest1(object):
+
+    """Implementation of the 'Api Ner Request1' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input12): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiNerRequest1 class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input12.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_ner_response.py b/firstlanguage_python/models/api_ner_response.py
new file mode 100644
index 0000000..1e23f61
--- /dev/null
+++ b/firstlanguage_python/models/api_ner_response.py
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiNerResponse(object):
+
+    """Implementation of the 'Api Ner Response' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        entity_group (string): Entity group inferred.
+        word (string): Corresponding word
+        start (string): Start position of the entity in the given input.
+        end (string): Start position of the entity in the given input.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "entity_group": 'entity_group',
+        "word": 'word',
+        "start": 'start',
+        "end": 'end'
+    }
+
+    def __init__(self,
+                 entity_group=None,
+                 word=None,
+                 start=None,
+                 end=None):
+        """Constructor for the ApiNerResponse class"""
+
+        # Initialize members of the class
+        self.entity_group = entity_group
+        self.word = word
+        self.start = start
+        self.end = end
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        entity_group = dictionary.get('entity_group')
+        word = dictionary.get('word')
+        start = dictionary.get('start')
+        end = dictionary.get('end')
+
+        # Return an object of this model
+        return cls(entity_group,
+                   word,
+                   start,
+                   end)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_qa_request.py b/firstlanguage_python/models/api_qa_request.py
new file mode 100644
index 0000000..4699d3b
--- /dev/null
+++ b/firstlanguage_python/models/api_qa_request.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_5 import Input5
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiQaRequest(object):
+
+    """Implementation of the 'Api Qa Request' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input5): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiQaRequest class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input5.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_qa_request_1.py b/firstlanguage_python/models/api_qa_request_1.py
new file mode 100644
index 0000000..d26347a
--- /dev/null
+++ b/firstlanguage_python/models/api_qa_request_1.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_6 import Input6
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiQaRequest1(object):
+
+    """Implementation of the 'Api Qa Request1' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input6): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiQaRequest1 class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input6.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_qa_response.py b/firstlanguage_python/models/api_qa_response.py
new file mode 100644
index 0000000..006040f
--- /dev/null
+++ b/firstlanguage_python/models/api_qa_response.py
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiQaResponse(object):
+
+    """Implementation of the 'Api Qa Response' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        score (float): What is the confident score of the answer
+        start (float): Start position of the answer in the context
+        end (float): End position of the answer in the context
+        answer (string): Answer to the question.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "score": 'score',
+        "start": 'start',
+        "end": 'end',
+        "answer": 'answer'
+    }
+
+    def __init__(self,
+                 score=None,
+                 start=None,
+                 end=None,
+                 answer=None):
+        """Constructor for the ApiQaResponse class"""
+
+        # Initialize members of the class
+        self.score = score
+        self.start = start
+        self.end = end
+        self.answer = answer
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        score = dictionary.get('score')
+        start = dictionary.get('start')
+        end = dictionary.get('end')
+        answer = dictionary.get('answer')
+
+        # Return an object of this model
+        return cls(score,
+                   start,
+                   end,
+                   answer)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_question_request.py b/firstlanguage_python/models/api_question_request.py
new file mode 100644
index 0000000..e2ef2c2
--- /dev/null
+++ b/firstlanguage_python/models/api_question_request.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_10 import Input10
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiQuestionRequest(object):
+
+    """Implementation of the 'Api Question Request' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input10): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiQuestionRequest class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input10.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_question_response.py b/firstlanguage_python/models/api_question_response.py
new file mode 100644
index 0000000..f44c26e
--- /dev/null
+++ b/firstlanguage_python/models/api_question_response.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiQuestionResponse(object):
+
+    """Implementation of the 'Api Question Response' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        answer (string): Answer to the question.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "answer": 'answer'
+    }
+
+    def __init__(self,
+                 answer=None):
+        """Constructor for the ApiQuestionResponse class"""
+
+        # Initialize members of the class
+        self.answer = answer
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        answer = dictionary.get('answer')
+
+        # Return an object of this model
+        return cls(answer)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_summary_request.py b/firstlanguage_python/models/api_summary_request.py
new file mode 100644
index 0000000..da23dd6
--- /dev/null
+++ b/firstlanguage_python/models/api_summary_request.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_13 import Input13
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiSummaryRequest(object):
+
+    """Implementation of the 'Api Summary Request' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input13): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiSummaryRequest class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input13.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_summary_request_1.py b/firstlanguage_python/models/api_summary_request_1.py
new file mode 100644
index 0000000..94c22c0
--- /dev/null
+++ b/firstlanguage_python/models/api_summary_request_1.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_14 import Input14
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiSummaryRequest1(object):
+
+    """Implementation of the 'Api Summary Request1' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input14): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiSummaryRequest1 class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input14.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_summary_response.py b/firstlanguage_python/models/api_summary_response.py
new file mode 100644
index 0000000..822ec0f
--- /dev/null
+++ b/firstlanguage_python/models/api_summary_response.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiSummaryResponse(object):
+
+    """Implementation of the 'Api Summary Response' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        summary (string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "summary": 'summary'
+    }
+
+    def __init__(self,
+                 summary=None):
+        """Constructor for the ApiSummaryResponse class"""
+
+        # Initialize members of the class
+        self.summary = summary
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        summary = dictionary.get('summary')
+
+        # Return an object of this model
+        return cls(summary)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_tableqa_request.py b/firstlanguage_python/models/api_tableqa_request.py
new file mode 100644
index 0000000..f1ed3d4
--- /dev/null
+++ b/firstlanguage_python/models/api_tableqa_request.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_7 import Input7
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiTableqaRequest(object):
+
+    """Implementation of the 'Api Tableqa Request' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input7): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiTableqaRequest class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input7.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_tableqa_request_1.py b/firstlanguage_python/models/api_tableqa_request_1.py
new file mode 100644
index 0000000..4bfa074
--- /dev/null
+++ b/firstlanguage_python/models/api_tableqa_request_1.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_8 import Input8
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiTableqaRequest1(object):
+
+    """Implementation of the 'Api Tableqa Request1' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input8): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiTableqaRequest1 class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input8.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_tableqa_response.py b/firstlanguage_python/models/api_tableqa_response.py
new file mode 100644
index 0000000..e108424
--- /dev/null
+++ b/firstlanguage_python/models/api_tableqa_response.py
@@ -0,0 +1,84 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiTableqaResponse(object):
+
+    """Implementation of the 'Api Tableqa Response' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        query (string): Original Question
+        answer (list of string): TODO: type description here.
+        rows (list of string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "query": 'query',
+        "answer": 'answer',
+        "rows": 'rows'
+    }
+
+    def __init__(self,
+                 query=None,
+                 answer=None,
+                 rows=None):
+        """Constructor for the ApiTableqaResponse class"""
+
+        # Initialize members of the class
+        self.query = query
+        self.answer = answer
+        self.rows = rows
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        query = dictionary.get('query')
+        answer = dictionary.get('answer')
+        rows = dictionary.get('rows')
+
+        # Return an object of this model
+        return cls(query,
+                   answer,
+                   rows)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_translate_request.py b/firstlanguage_python/models/api_translate_request.py
new file mode 100644
index 0000000..c894cb9
--- /dev/null
+++ b/firstlanguage_python/models/api_translate_request.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_15 import Input15
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiTranslateRequest(object):
+
+    """Implementation of the 'Api Translate Request' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input15): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiTranslateRequest class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input15.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_translate_request_1.py b/firstlanguage_python/models/api_translate_request_1.py
new file mode 100644
index 0000000..b356d4f
--- /dev/null
+++ b/firstlanguage_python/models/api_translate_request_1.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_16 import Input16
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiTranslateRequest1(object):
+
+    """Implementation of the 'Api Translate Request1' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input16): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the ApiTranslateRequest1 class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input16.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/api_translate_response.py b/firstlanguage_python/models/api_translate_response.py
new file mode 100644
index 0000000..7882a63
--- /dev/null
+++ b/firstlanguage_python/models/api_translate_response.py
@@ -0,0 +1,74 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class ApiTranslateResponse(object):
+
+    """Implementation of the 'Api Translate Response' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        generated_text (string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "generated_text": 'generated_text'
+    }
+
+    def __init__(self,
+                 generated_text=None):
+        """Constructor for the ApiTranslateResponse class"""
+
+        # Initialize members of the class
+        self.generated_text = generated_text
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+
+
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        generated_text = dictionary.get('generated_text')
+
+        # Return an object of this model
+        return cls(generated_text)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/errors_1.py b/firstlanguage_python/models/errors_1.py
new file mode 100644
index 0000000..1239ee2
--- /dev/null
+++ b/firstlanguage_python/models/errors_1.py
@@ -0,0 +1,84 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Errors1(object):
+
+    """Implementation of the 'Errors1' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        msg (string): TODO: type description here.
+        param (string): TODO: type description here.
+        location (string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "msg": 'msg',
+        "param": 'param',
+        "location": 'location'
+    }
+
+    def __init__(self,
+                 msg=None,
+                 param=None,
+                 location=None):
+        """Constructor for the Errors1 class"""
+
+        # Initialize members of the class
+        self.msg = msg
+        self.param = param
+        self.location = location
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        msg = dictionary.get('msg')
+        param = dictionary.get('param')
+        location = dictionary.get('location')
+
+        # Return an object of this model
+        return cls(msg,
+                   param,
+                   location)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input.py b/firstlanguage_python/models/input.py
new file mode 100644
index 0000000..f99ee6c
--- /dev/null
+++ b/firstlanguage_python/models/input.py
@@ -0,0 +1,80 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input(object):
+
+    """Implementation of the 'Input' model.
+
+    Direct Text Input
+
+    Attributes:
+        text (string): Word or sentence or a paragraph. Special characters
+            will not be stripped.
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "text": 'text',
+        "lang": 'lang'
+    }
+
+    def __init__(self,
+                 text=None,
+                 lang=None):
+        """Constructor for the Input class"""
+
+        # Initialize members of the class
+        self.text = text
+        self.lang = lang
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        text = dictionary.get('text')
+        lang = dictionary.get('lang')
+
+        # Return an object of this model
+        return cls(text,
+                   lang)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_1.py b/firstlanguage_python/models/input_1.py
new file mode 100644
index 0000000..0dacefe
--- /dev/null
+++ b/firstlanguage_python/models/input_1.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input1(object):
+
+    """Implementation of the 'Input1' model.
+
+    Text for processing will be read from the given URL.
+
+    Attributes:
+        url (string): URL where the content is hosted.
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+        content_type (string): Allowed values are:html,plaintext, pdf, docx If
+            html is specified all html tags and special characters will be
+            stripped before processing. For PDF and docx, all text will be
+            read. Scanned documents will not work.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "url": 'url',
+        "lang": 'lang',
+        "content_type": 'contentType'
+    }
+
+    def __init__(self,
+                 url=None,
+                 lang=None,
+                 content_type=None):
+        """Constructor for the Input1 class"""
+
+        # Initialize members of the class
+        self.url = url
+        self.lang = lang
+        self.content_type = content_type
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        url = dictionary.get('url')
+        lang = dictionary.get('lang')
+        content_type = dictionary.get('contentType')
+
+        # Return an object of this model
+        return cls(url,
+                   lang,
+                   content_type)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_10.py b/firstlanguage_python/models/input_10.py
new file mode 100644
index 0000000..1617cae
--- /dev/null
+++ b/firstlanguage_python/models/input_10.py
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input10(object):
+
+    """Implementation of the 'Input10' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        question (string): Question to be answered from the context loaded in
+            memory
+        lang (string): Language of the question
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "question": 'question',
+        "lang": 'lang'
+    }
+
+    def __init__(self,
+                 question=None,
+                 lang=None):
+        """Constructor for the Input10 class"""
+
+        # Initialize members of the class
+        self.question = question
+        self.lang = lang
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        question = dictionary.get('question')
+        lang = dictionary.get('lang')
+
+        # Return an object of this model
+        return cls(question,
+                   lang)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_11.py b/firstlanguage_python/models/input_11.py
new file mode 100644
index 0000000..18bf38e
--- /dev/null
+++ b/firstlanguage_python/models/input_11.py
@@ -0,0 +1,80 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input11(object):
+
+    """Implementation of the 'Input11' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        text (string): Named Entities will be marked from this text. Special
+            characters will not be stripped.
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "text": 'text',
+        "lang": 'lang'
+    }
+
+    def __init__(self,
+                 text=None,
+                 lang=None):
+        """Constructor for the Input11 class"""
+
+        # Initialize members of the class
+        self.text = text
+        self.lang = lang
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        text = dictionary.get('text')
+        lang = dictionary.get('lang')
+
+        # Return an object of this model
+        return cls(text,
+                   lang)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_12.py b/firstlanguage_python/models/input_12.py
new file mode 100644
index 0000000..e709695
--- /dev/null
+++ b/firstlanguage_python/models/input_12.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input12(object):
+
+    """Implementation of the 'Input12' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+        content_type (string): Allowed values are:html,plaintext, pdf, docx If
+            html is specified all html tags and special characters will be
+            stripped before processing. For PDF and docx, all text will be
+            read. Scanned documents will not work.
+        url (string): URL where the text for the NER task is stored.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "lang": 'lang',
+        "content_type": 'contentType',
+        "url": 'url'
+    }
+
+    def __init__(self,
+                 lang=None,
+                 content_type=None,
+                 url=None):
+        """Constructor for the Input12 class"""
+
+        # Initialize members of the class
+        self.lang = lang
+        self.content_type = content_type
+        self.url = url
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        lang = dictionary.get('lang')
+        content_type = dictionary.get('contentType')
+        url = dictionary.get('url')
+
+        # Return an object of this model
+        return cls(lang,
+                   content_type,
+                   url)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_13.py b/firstlanguage_python/models/input_13.py
new file mode 100644
index 0000000..7e50bf0
--- /dev/null
+++ b/firstlanguage_python/models/input_13.py
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input13(object):
+
+    """Implementation of the 'Input13' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        text (string): Text for which summary should be generated
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "text": 'text',
+        "lang": 'lang'
+    }
+
+    def __init__(self,
+                 text=None,
+                 lang=None):
+        """Constructor for the Input13 class"""
+
+        # Initialize members of the class
+        self.text = text
+        self.lang = lang
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        text = dictionary.get('text')
+        lang = dictionary.get('lang')
+
+        # Return an object of this model
+        return cls(text,
+                   lang)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_14.py b/firstlanguage_python/models/input_14.py
new file mode 100644
index 0000000..4676168
--- /dev/null
+++ b/firstlanguage_python/models/input_14.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input14(object):
+
+    """Implementation of the 'Input14' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+        content_type (string): Allowed values are:html,plaintext, pdf, docx If
+            html is specified all html tags and special characters will be
+            stripped before processing. For PDF and docx, all text will be
+            read. Scanned documents will not work.
+        url (string): Text from this URL will be read and a summary generated
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "lang": 'lang',
+        "content_type": 'contentType',
+        "url": 'url'
+    }
+
+    def __init__(self,
+                 lang=None,
+                 content_type=None,
+                 url=None):
+        """Constructor for the Input14 class"""
+
+        # Initialize members of the class
+        self.lang = lang
+        self.content_type = content_type
+        self.url = url
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        lang = dictionary.get('lang')
+        content_type = dictionary.get('contentType')
+        url = dictionary.get('url')
+
+        # Return an object of this model
+        return cls(lang,
+                   content_type,
+                   url)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_15.py b/firstlanguage_python/models/input_15.py
new file mode 100644
index 0000000..cf69d82
--- /dev/null
+++ b/firstlanguage_python/models/input_15.py
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input15(object):
+
+    """Implementation of the 'Input15' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        text (string): Text for which translation should be generated
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "text": 'text',
+        "lang": 'lang'
+    }
+
+    def __init__(self,
+                 text=None,
+                 lang=None):
+        """Constructor for the Input15 class"""
+
+        # Initialize members of the class
+        self.text = text
+        self.lang = lang
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        text = dictionary.get('text')
+        lang = dictionary.get('lang')
+
+        # Return an object of this model
+        return cls(text,
+                   lang)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_16.py b/firstlanguage_python/models/input_16.py
new file mode 100644
index 0000000..1fc07ed
--- /dev/null
+++ b/firstlanguage_python/models/input_16.py
@@ -0,0 +1,95 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input16(object):
+
+    """Implementation of the 'Input16' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+        content_type (string): Allowed values are:html,plaintext, pdf, docx If
+            html is specified all html tags and special characters will be
+            stripped before processing. For PDF and docx, all text will be
+            read. Scanned documents will not work.
+        url (string): Text from this URL will be read and a translation
+            generated
+        preserve_format (string): Accepted values are true, false.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "lang": 'lang',
+        "content_type": 'contentType',
+        "url": 'url',
+        "preserve_format": 'preserveFormat'
+    }
+
+    def __init__(self,
+                 lang=None,
+                 content_type=None,
+                 url=None,
+                 preserve_format=None):
+        """Constructor for the Input16 class"""
+
+        # Initialize members of the class
+        self.lang = lang
+        self.content_type = content_type
+        self.url = url
+        self.preserve_format = preserve_format
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        lang = dictionary.get('lang')
+        content_type = dictionary.get('contentType')
+        url = dictionary.get('url')
+        preserve_format = dictionary.get('preserveFormat')
+
+        # Return an object of this model
+        return cls(lang,
+                   content_type,
+                   url,
+                   preserve_format)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_2.py b/firstlanguage_python/models/input_2.py
new file mode 100644
index 0000000..30521ac
--- /dev/null
+++ b/firstlanguage_python/models/input_2.py
@@ -0,0 +1,86 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input2(object):
+
+    """Implementation of the 'Input2' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        context (string): Word or sentence or a paragraph. Special characters
+            will not be stripped.
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+        labels (list of object): Labels to classify
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "context": 'context',
+        "lang": 'lang',
+        "labels": 'labels'
+    }
+
+    def __init__(self,
+                 context=None,
+                 lang=None,
+                 labels=None):
+        """Constructor for the Input2 class"""
+
+        # Initialize members of the class
+        self.context = context
+        self.lang = lang
+        self.labels = labels
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        context = dictionary.get('context')
+        lang = dictionary.get('lang')
+        labels = dictionary.get('labels')
+
+        # Return an object of this model
+        return cls(context,
+                   lang,
+                   labels)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_3.py b/firstlanguage_python/models/input_3.py
new file mode 100644
index 0000000..da60859
--- /dev/null
+++ b/firstlanguage_python/models/input_3.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input3(object):
+
+    """Implementation of the 'Input3' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        url (string): URL where the content is hosted.
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+        content_type (string): Allowed values are:html,plaintext, pdf, docx If
+            html is specified all html tags and special characters will be
+            stripped before processing. For PDF and docx, all text will be
+            read. Scanned documents will not work.
+        labels (list of object): Labels to classify
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "url": 'url',
+        "lang": 'lang',
+        "content_type": 'contentType',
+        "labels": 'labels'
+    }
+
+    def __init__(self,
+                 url=None,
+                 lang=None,
+                 content_type=None,
+                 labels=None):
+        """Constructor for the Input3 class"""
+
+        # Initialize members of the class
+        self.url = url
+        self.lang = lang
+        self.content_type = content_type
+        self.labels = labels
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        url = dictionary.get('url')
+        lang = dictionary.get('lang')
+        content_type = dictionary.get('contentType')
+        labels = dictionary.get('labels')
+
+        # Return an object of this model
+        return cls(url,
+                   lang,
+                   content_type,
+                   labels)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_4.py b/firstlanguage_python/models/input_4.py
new file mode 100644
index 0000000..ca9d9a4
--- /dev/null
+++ b/firstlanguage_python/models/input_4.py
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input4(object):
+
+    """Implementation of the 'Input4' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        text (string): Word or sentence or a paragraph. Special characters
+            will not be stripped.
+        lang (string): Allowed ISO language code. Refer languages section.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "text": 'text',
+        "lang": 'lang'
+    }
+
+    def __init__(self,
+                 text=None,
+                 lang=None):
+        """Constructor for the Input4 class"""
+
+        # Initialize members of the class
+        self.text = text
+        self.lang = lang
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        text = dictionary.get('text')
+        lang = dictionary.get('lang')
+
+        # Return an object of this model
+        return cls(text,
+                   lang)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_5.py b/firstlanguage_python/models/input_5.py
new file mode 100644
index 0000000..8922b56
--- /dev/null
+++ b/firstlanguage_python/models/input_5.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input5(object):
+
+    """Implementation of the 'Input5' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        question (string): Question to be answered from the context given.
+            Only One question can be asked at a time. Special characters will
+            not be stripped.
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+        context (string): Sentence or a paragraph. Special characters will not
+            be stripped. Maximum size limit is ~5KB of context text.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "question": 'question',
+        "lang": 'lang',
+        "context": 'context'
+    }
+
+    def __init__(self,
+                 question=None,
+                 lang=None,
+                 context=None):
+        """Constructor for the Input5 class"""
+
+        # Initialize members of the class
+        self.question = question
+        self.lang = lang
+        self.context = context
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        question = dictionary.get('question')
+        lang = dictionary.get('lang')
+        context = dictionary.get('context')
+
+        # Return an object of this model
+        return cls(question,
+                   lang,
+                   context)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_6.py b/firstlanguage_python/models/input_6.py
new file mode 100644
index 0000000..1c17430
--- /dev/null
+++ b/firstlanguage_python/models/input_6.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input6(object):
+
+    """Implementation of the 'Input6' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        question (string): Question to be answered from the context given.
+            Only One question can be asked at a time. Special characters will
+            not be stripped.
+        lang (string): Allowed language code. Refer Allowed languages
+            section.
+        content_type (string): Allowed values are:html,plaintext, pdf, docx If
+            html is specified all html tags and special characters will be
+            stripped before processing. For PDF and docx, all text will be
+            read. Scanned documents will not work.
+        url (string): URL where the context for the question is stored.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "question": 'question',
+        "lang": 'lang',
+        "content_type": 'contentType',
+        "url": 'url'
+    }
+
+    def __init__(self,
+                 question=None,
+                 lang=None,
+                 content_type=None,
+                 url=None):
+        """Constructor for the Input6 class"""
+
+        # Initialize members of the class
+        self.question = question
+        self.lang = lang
+        self.content_type = content_type
+        self.url = url
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        question = dictionary.get('question')
+        lang = dictionary.get('lang')
+        content_type = dictionary.get('contentType')
+        url = dictionary.get('url')
+
+        # Return an object of this model
+        return cls(question,
+                   lang,
+                   content_type,
+                   url)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_7.py b/firstlanguage_python/models/input_7.py
new file mode 100644
index 0000000..9532468
--- /dev/null
+++ b/firstlanguage_python/models/input_7.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input7(object):
+
+    """Implementation of the 'Input7' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        flattable (object): Table if JSON format
+        send_back_rows (bool): Send back original rows from which the answer
+            was extracted. Input either true or false.
+        questions (list of string): Array of questions.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "flattable": 'flattable',
+        "send_back_rows": 'sendBackRows',
+        "questions": 'questions'
+    }
+
+    def __init__(self,
+                 flattable=None,
+                 send_back_rows=None,
+                 questions=None):
+        """Constructor for the Input7 class"""
+
+        # Initialize members of the class
+        self.flattable = flattable
+        self.send_back_rows = send_back_rows
+        self.questions = questions
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        flattable = dictionary.get('flattable')
+        send_back_rows = dictionary.get('sendBackRows')
+        questions = dictionary.get('questions')
+
+        # Return an object of this model
+        return cls(flattable,
+                   send_back_rows,
+                   questions)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_8.py b/firstlanguage_python/models/input_8.py
new file mode 100644
index 0000000..114ded9
--- /dev/null
+++ b/firstlanguage_python/models/input_8.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input8(object):
+
+    """Implementation of the 'Input8' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        url (string): URL of the CSV file.
+        send_back_rows (bool): Send back original rows from which the answer
+            was extracted. Input either true or false.
+        questions (list of string): Array of questions
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "url": 'url',
+        "send_back_rows": 'sendBackRows',
+        "questions": 'questions'
+    }
+
+    def __init__(self,
+                 url=None,
+                 send_back_rows=None,
+                 questions=None):
+        """Constructor for the Input8 class"""
+
+        # Initialize members of the class
+        self.url = url
+        self.send_back_rows = send_back_rows
+        self.questions = questions
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        url = dictionary.get('url')
+        send_back_rows = dictionary.get('sendBackRows')
+        questions = dictionary.get('questions')
+
+        # Return an object of this model
+        return cls(url,
+                   send_back_rows,
+                   questions)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/input_9.py b/firstlanguage_python/models/input_9.py
new file mode 100644
index 0000000..797f8a6
--- /dev/null
+++ b/firstlanguage_python/models/input_9.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Input9(object):
+
+    """Implementation of the 'Input9' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        url (string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "url": 'url'
+    }
+
+    def __init__(self,
+                 url=None):
+        """Constructor for the Input9 class"""
+
+        # Initialize members of the class
+        self.url = url
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        url = dictionary.get('url')
+
+        # Return an object of this model
+        return cls(url)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/orignal_string.py b/firstlanguage_python/models/orignal_string.py
new file mode 100644
index 0000000..da6a6fd
--- /dev/null
+++ b/firstlanguage_python/models/orignal_string.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class originalString(object):
+
+    """Implementation of the 'originalString' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        morph_attr (list of string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "morph_attr": 'morph_attr'
+    }
+
+    def __init__(self,
+                 morph_attr=None):
+        """Constructor for the originalString class"""
+
+        # Initialize members of the class
+        self.morph_attr = morph_attr
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        morph_attr = dictionary.get('morph_attr')
+
+        # Return an object of this model
+        return cls(morph_attr)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/responseclassify.py b/firstlanguage_python/models/responseclassify.py
new file mode 100644
index 0000000..1dd4631
--- /dev/null
+++ b/firstlanguage_python/models/responseclassify.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Responseclassify(object):
+
+    """Implementation of the 'responseclassify' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        labels (list of string): TODO: type description here.
+        scores (list of float): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "labels": 'labels',
+        "scores": 'scores'
+    }
+
+    def __init__(self,
+                 labels=None,
+                 scores=None):
+        """Constructor for the Responseclassify class"""
+
+        # Initialize members of the class
+        self.labels = labels
+        self.scores = scores
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        labels = dictionary.get('labels')
+        scores = dictionary.get('scores')
+
+        # Return an object of this model
+        return cls(labels,
+                   scores)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/responselemma.py b/firstlanguage_python/models/responselemma.py
new file mode 100644
index 0000000..b91c7be
--- /dev/null
+++ b/firstlanguage_python/models/responselemma.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Responselemma(object):
+
+    """Implementation of the 'responselemma' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        original_text (string): TODO: type description here.
+        lemmatized (string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "original_text": 'originalText',
+        "lemmatized": 'lemmatized'
+    }
+
+    def __init__(self,
+                 original_text=None,
+                 lemmatized=None):
+        """Constructor for the Responselemma class"""
+
+        # Initialize members of the class
+        self.original_text = original_text
+        self.lemmatized = lemmatized
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        original_text = dictionary.get('originalText')
+        lemmatized = dictionary.get('lemmatized')
+
+        # Return an object of this model
+        return cls(original_text,
+                   lemmatized)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/responsemorph.py b/firstlanguage_python/models/responsemorph.py
new file mode 100644
index 0000000..fa8b462
--- /dev/null
+++ b/firstlanguage_python/models/responsemorph.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Responsemorph(object):
+
+    """Implementation of the 'responsemorph' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        original_string (originalString): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "original_string": 'originalString'
+    }
+
+    def __init__(self,
+                 original_string=None):
+        """Constructor for the Responsemorph class"""
+
+        # Initialize members of the class
+        self.original_string = original_string
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        original_string = dictionary
+        
+        # Return an object of this model
+        return cls(original_string)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/responsepo.py b/firstlanguage_python/models/responsepo.py
new file mode 100644
index 0000000..4de6e42
--- /dev/null
+++ b/firstlanguage_python/models/responsepo.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Responsepo(object):
+
+    """Implementation of the 'responsepo' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        original_text (string): TODO: type description here.
+        postag (string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "original_text": 'originalText',
+        "postag": 'postag'
+    }
+
+    def __init__(self,
+                 original_text=None,
+                 postag=None):
+        """Constructor for the Responsepo class"""
+
+        # Initialize members of the class
+        self.original_text = original_text
+        self.postag = postag
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        original_text = dictionary.get('originalText')
+        postag = dictionary.get('postag')
+
+        # Return an object of this model
+        return cls(original_text,
+                   postag)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/responsestem.py b/firstlanguage_python/models/responsestem.py
new file mode 100644
index 0000000..bcc7b3a
--- /dev/null
+++ b/firstlanguage_python/models/responsestem.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class Responsestem(object):
+
+    """Implementation of the 'responsestem' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        original_text (string): TODO: type description here.
+        stem (string): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "original_text": 'originalText',
+        "stem": 'stem'
+    }
+
+    def __init__(self,
+                 original_text=None,
+                 stem=None):
+        """Constructor for the Responsestem class"""
+
+        # Initialize members of the class
+        self.original_text = original_text
+        self.stem = stem
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        original_text = dictionary.get('originalText')
+        stem = dictionary.get('stem')
+
+        # Return an object of this model
+        return cls(original_text,
+                   stem)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/text_input.py b/firstlanguage_python/models/text_input.py
new file mode 100644
index 0000000..3187f33
--- /dev/null
+++ b/firstlanguage_python/models/text_input.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input import Input
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class TextInput(object):
+
+    """Implementation of the 'TextInput' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input): Direct Text Input
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the TextInput class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/text_input_classify.py b/firstlanguage_python/models/text_input_classify.py
new file mode 100644
index 0000000..0949c2c
--- /dev/null
+++ b/firstlanguage_python/models/text_input_classify.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_2 import Input2
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class TextInputClassify(object):
+
+    """Implementation of the 'TextInputClassify' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input2): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the TextInputClassify class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input2.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/text_input_tamil.py b/firstlanguage_python/models/text_input_tamil.py
new file mode 100644
index 0000000..6056bae
--- /dev/null
+++ b/firstlanguage_python/models/text_input_tamil.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_4 import Input4
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class TextInputTamil(object):
+
+    """Implementation of the 'TextInputTamil' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input4): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the TextInputTamil class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input4.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/url_input.py b/firstlanguage_python/models/url_input.py
new file mode 100644
index 0000000..cefbe91
--- /dev/null
+++ b/firstlanguage_python/models/url_input.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_1 import Input1
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class URLInput(object):
+
+    """Implementation of the 'URLInput' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input1): Text for processing will be read from the given URL.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the URLInput class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input1.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/models/url_input_classify.py b/firstlanguage_python/models/url_input_classify.py
new file mode 100644
index 0000000..474e5d9
--- /dev/null
+++ b/firstlanguage_python/models/url_input_classify.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+from firstlanguage_python.models.input_3 import Input3
+import os
+from firstlanguage_python.utilities.schema_validator_wrapper import SchemaValidatorWrapper
+from jsonschema import ValidationError
+from firstlanguage_python.api_helper import APIHelper
+
+
+class URLInputClassify(object):
+
+    """Implementation of the 'URLInputClassify' model.
+
+    TODO: type model description here.
+
+    Attributes:
+        input (Input3): TODO: type description here.
+
+    """
+
+    # Create a mapping from Model property names to API property names
+    _names = {
+        "input": 'input'
+    }
+
+    def __init__(self,
+                 input=None):
+        """Constructor for the URLInputClassify class"""
+
+        # Initialize members of the class
+        self.input = input
+
+    @classmethod
+    def from_dictionary(cls,
+                        dictionary):
+        """Creates an instance of this model from a dictionary
+
+        Args:
+            dictionary (dictionary): A dictionary representation of the object
+            as obtained from the deserialization of the server's response. The
+            keys MUST match property names in the API description.
+
+        Returns:
+            object: An instance of this structure class.
+
+        """
+        if dictionary is None:
+            return None
+
+        # Extract variables from the dictionary
+        input = Input3.from_dictionary(dictionary.get('input')) if dictionary.get('input') else None
+
+        # Return an object of this model
+        return cls(input)
+
+    @classmethod
+    def validate(cls, val):
+        """Validates value against class schema
+
+        Args:
+            val: the value to be validated
+
+        Returns:
+            boolean : if value is valid against schema.
+
+        """
+        return SchemaValidatorWrapper.getValidator(APIHelper.get_schema_path(os.path.abspath(__file__))).is_valid(val)
diff --git a/firstlanguage_python/schemas/api_imagecaption_request.json b/firstlanguage_python/schemas/api_imagecaption_request.json
new file mode 100644
index 0000000..3532f27
--- /dev/null
+++ b/firstlanguage_python/schemas/api_imagecaption_request.json
@@ -0,0 +1,22 @@
+{
+  "id": "Api Imagecaption Request",
+  "title": "Api Imagecaption Request",
+  "extensions": {
+    "x-examples": {
+      "example-1": {
+        "input": {
+          "url": "https://i.redd.it/v1fvin01ynv51.jpg"
+        }
+      }
+    }
+  },
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input9"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_imagecaption_response.json b/firstlanguage_python/schemas/api_imagecaption_response.json
new file mode 100644
index 0000000..f0f8a22
--- /dev/null
+++ b/firstlanguage_python/schemas/api_imagecaption_response.json
@@ -0,0 +1,20 @@
+{
+  "id": "Api Imagecaption Response",
+  "title": "Api Imagecaption Response",
+  "extensions": {
+    "x-examples": {
+      "example-1": {
+        "generated_caption": "A view of a beach with a sun shining over it"
+      }
+    }
+  },
+  "type": "object",
+  "properties": {
+    "generated_caption": {
+      "type": "string"
+    }
+  },
+  "required": [
+    "generated_caption"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_ner_request.json b/firstlanguage_python/schemas/api_ner_request.json
new file mode 100644
index 0000000..f1eb414
--- /dev/null
+++ b/firstlanguage_python/schemas/api_ner_request.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Ner Request",
+  "title": "Api Ner Request",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input11"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_ner_request_1.json b/firstlanguage_python/schemas/api_ner_request_1.json
new file mode 100644
index 0000000..7fcd3be
--- /dev/null
+++ b/firstlanguage_python/schemas/api_ner_request_1.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Ner Request1",
+  "title": "Api Ner Request1",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input12"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_ner_response.json b/firstlanguage_python/schemas/api_ner_response.json
new file mode 100644
index 0000000..5125a64
--- /dev/null
+++ b/firstlanguage_python/schemas/api_ner_response.json
@@ -0,0 +1,29 @@
+{
+  "id": "Api Ner Response",
+  "title": "Api Ner Response",
+  "type": "object",
+  "properties": {
+    "entity_group": {
+      "description": "Entity group inferred.",
+      "type": "string"
+    },
+    "word": {
+      "description": "Corresponding word",
+      "type": "string"
+    },
+    "start": {
+      "description": "Start position of the entity in the given input.",
+      "type": "string"
+    },
+    "end": {
+      "description": "Start position of the entity in the given input.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "entity_group",
+    "word",
+    "start",
+    "end"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_qa_request.json b/firstlanguage_python/schemas/api_qa_request.json
new file mode 100644
index 0000000..f9a9c4d
--- /dev/null
+++ b/firstlanguage_python/schemas/api_qa_request.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Qa Request",
+  "title": "Api Qa Request",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input5"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_qa_request_1.json b/firstlanguage_python/schemas/api_qa_request_1.json
new file mode 100644
index 0000000..bffc4c0
--- /dev/null
+++ b/firstlanguage_python/schemas/api_qa_request_1.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Qa Request1",
+  "title": "Api Qa Request1",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input6"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_qa_response.json b/firstlanguage_python/schemas/api_qa_response.json
new file mode 100644
index 0000000..548c663
--- /dev/null
+++ b/firstlanguage_python/schemas/api_qa_response.json
@@ -0,0 +1,40 @@
+{
+  "id": "Api Qa Response",
+  "title": "Api Qa Response",
+  "extensions": {
+    "x-examples": {
+      "example-1": {
+        "score": 0.028566665947437286,
+        "start": 0,
+        "end": 20,
+        "answer": "உப்பு, புளி, மிளகாய்"
+      }
+    }
+  },
+  "type": "object",
+  "properties": {
+    "score": {
+      "description": "What is the confident score of the answer",
+      "type": "number"
+    },
+    "start": {
+      "description": "Start position of the answer in the context",
+      "type": "number"
+    },
+    "end": {
+      "description": "End position of the answer in the context",
+      "type": "number"
+    },
+    "answer": {
+      "description": "Answer to the question.",
+      "type": "string",
+      "minLength": 1
+    }
+  },
+  "required": [
+    "score",
+    "start",
+    "end",
+    "answer"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_question_request.json b/firstlanguage_python/schemas/api_question_request.json
new file mode 100644
index 0000000..1214a65
--- /dev/null
+++ b/firstlanguage_python/schemas/api_question_request.json
@@ -0,0 +1,23 @@
+{
+  "id": "Api Question Request",
+  "title": "Api Question Request",
+  "extensions": {
+    "x-examples": {
+      "example-1": {
+        "input": {
+          "question": "Who is father of Arya Stark?",
+          "lang": "en"
+        }
+      }
+    }
+  },
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input10"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_question_response.json b/firstlanguage_python/schemas/api_question_response.json
new file mode 100644
index 0000000..f308257
--- /dev/null
+++ b/firstlanguage_python/schemas/api_question_response.json
@@ -0,0 +1,24 @@
+{
+  "id": "Api Question Response",
+  "title": "Api Question Response",
+  "extensions": {
+    "x-examples": {
+      "example-1": {
+        "score": 0.028566665947437286,
+        "start": 0,
+        "end": 20,
+        "answer": "உப்பு, புளி, மிளகாய்"
+      }
+    }
+  },
+  "type": "object",
+  "properties": {
+    "answer": {
+      "description": "Answer to the question.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "answer"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_summary_request.json b/firstlanguage_python/schemas/api_summary_request.json
new file mode 100644
index 0000000..d8d68ab
--- /dev/null
+++ b/firstlanguage_python/schemas/api_summary_request.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Summary Request",
+  "title": "Api Summary Request",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input13"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_summary_request_1.json b/firstlanguage_python/schemas/api_summary_request_1.json
new file mode 100644
index 0000000..8757751
--- /dev/null
+++ b/firstlanguage_python/schemas/api_summary_request_1.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Summary Request1",
+  "title": "Api Summary Request1",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input14"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_summary_response.json b/firstlanguage_python/schemas/api_summary_response.json
new file mode 100644
index 0000000..3eb2f26
--- /dev/null
+++ b/firstlanguage_python/schemas/api_summary_response.json
@@ -0,0 +1,28 @@
+{
+  "id": "Api Summary Response",
+  "title": "Api Summary Response",
+  "extensions": {
+    "x-examples": {
+      "example-1": [
+        {
+          "entity_group": "PER",
+          "word": "محمد",
+          "start": "4",
+          "end": "9"
+        },
+        {
+          "entity_group": "LOC",
+          "word": "برلين",
+          "start": "18",
+          "end": "24"
+        }
+      ]
+    }
+  },
+  "type": "object",
+  "properties": {
+    "summary": {
+      "type": "string"
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/api_tableqa_request.json b/firstlanguage_python/schemas/api_tableqa_request.json
new file mode 100644
index 0000000..16c0a1b
--- /dev/null
+++ b/firstlanguage_python/schemas/api_tableqa_request.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Tableqa Request",
+  "title": "Api Tableqa Request",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input7"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_tableqa_request_1.json b/firstlanguage_python/schemas/api_tableqa_request_1.json
new file mode 100644
index 0000000..51bab74
--- /dev/null
+++ b/firstlanguage_python/schemas/api_tableqa_request_1.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Tableqa Request1",
+  "title": "Api Tableqa Request1",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input8"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_tableqa_response.json b/firstlanguage_python/schemas/api_tableqa_response.json
new file mode 100644
index 0000000..afd0a2d
--- /dev/null
+++ b/firstlanguage_python/schemas/api_tableqa_response.json
@@ -0,0 +1,25 @@
+{
+  "id": "Api Tableqa Response",
+  "title": "Api Tableqa Response",
+  "type": "object",
+  "properties": {
+    "query": {
+      "description": "Original Question",
+      "type": "string"
+    },
+    "answer": {
+      "description": "",
+      "type": "array",
+      "items": {
+        "type": "string"
+      }
+    },
+    "rows": {
+      "description": "",
+      "type": "array",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/api_translate_request.json b/firstlanguage_python/schemas/api_translate_request.json
new file mode 100644
index 0000000..c0aaf14
--- /dev/null
+++ b/firstlanguage_python/schemas/api_translate_request.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Translate Request",
+  "title": "Api Translate Request",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input15"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_translate_request_1.json b/firstlanguage_python/schemas/api_translate_request_1.json
new file mode 100644
index 0000000..c99d2a5
--- /dev/null
+++ b/firstlanguage_python/schemas/api_translate_request_1.json
@@ -0,0 +1,13 @@
+{
+  "id": "Api Translate Request1",
+  "title": "Api Translate Request1",
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input16"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/api_translate_response.json b/firstlanguage_python/schemas/api_translate_response.json
new file mode 100644
index 0000000..9ffa4cb
--- /dev/null
+++ b/firstlanguage_python/schemas/api_translate_response.json
@@ -0,0 +1,28 @@
+{
+  "id": "Api Translate Response",
+  "title": "Api Translate Response",
+  "extensions": {
+    "x-examples": {
+      "example-1": [
+        {
+          "entity_group": "PER",
+          "word": "محمد",
+          "start": "4",
+          "end": "9"
+        },
+        {
+          "entity_group": "LOC",
+          "word": "برلين",
+          "start": "18",
+          "end": "24"
+        }
+      ]
+    }
+  },
+  "type": "object",
+  "properties": {
+    "generated_text": {
+      "type": "string"
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/errors_1.json b/firstlanguage_python/schemas/errors_1.json
new file mode 100644
index 0000000..95124ab
--- /dev/null
+++ b/firstlanguage_python/schemas/errors_1.json
@@ -0,0 +1,16 @@
+{
+  "id": "Errors1",
+  "title": "Errors1",
+  "type": "object",
+  "properties": {
+    "msg": {
+      "type": "string"
+    },
+    "param": {
+      "type": "string"
+    },
+    "location": {
+      "type": "string"
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/input.json b/firstlanguage_python/schemas/input.json
new file mode 100644
index 0000000..0e44e26
--- /dev/null
+++ b/firstlanguage_python/schemas/input.json
@@ -0,0 +1,22 @@
+{
+  "id": "Input",
+  "title": "Input",
+  "description": "Direct Text Input",
+  "type": "object",
+  "properties": {
+    "text": {
+      "description": "Word or sentence or a paragraph. Special characters will not be stripped.",
+      "example": "Let us begin the API development.",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "example": "en",
+      "type": "string"
+    }
+  },
+  "required": [
+    "text",
+    "lang"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_1.json b/firstlanguage_python/schemas/input_1.json
new file mode 100644
index 0000000..7ea2123
--- /dev/null
+++ b/firstlanguage_python/schemas/input_1.json
@@ -0,0 +1,28 @@
+{
+  "id": "Input1",
+  "title": "Input1",
+  "description": "Text for processing will be read from the given URL.",
+  "type": "object",
+  "properties": {
+    "url": {
+      "description": "URL where the content is hosted.",
+      "example": "http://news.bbc.co.uk/2/hi/health/2284783.stm",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "example": "en",
+      "type": "string"
+    },
+    "contentType": {
+      "description": "Allowed values are:html,plaintext, pdf, docx\nIf html is specified all html tags and special characters will be stripped before processing.\nFor PDF and docx, all text will be read. Scanned documents will not work.",
+      "example": "html",
+      "type": "string"
+    }
+  },
+  "required": [
+    "url",
+    "lang",
+    "contentType"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_10.json b/firstlanguage_python/schemas/input_10.json
new file mode 100644
index 0000000..b6d6972
--- /dev/null
+++ b/firstlanguage_python/schemas/input_10.json
@@ -0,0 +1,19 @@
+{
+  "id": "Input10",
+  "title": "Input10",
+  "type": "object",
+  "properties": {
+    "question": {
+      "description": "Question to be answered from the context loaded in memory",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Language of the question",
+      "type": "string"
+    }
+  },
+  "required": [
+    "question",
+    "lang"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_11.json b/firstlanguage_python/schemas/input_11.json
new file mode 100644
index 0000000..520d258
--- /dev/null
+++ b/firstlanguage_python/schemas/input_11.json
@@ -0,0 +1,19 @@
+{
+  "id": "Input11",
+  "title": "Input11",
+  "type": "object",
+  "properties": {
+    "text": {
+      "description": "Named Entities will be marked from this text. Special characters will not be stripped.",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "text",
+    "lang"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_12.json b/firstlanguage_python/schemas/input_12.json
new file mode 100644
index 0000000..312e21c
--- /dev/null
+++ b/firstlanguage_python/schemas/input_12.json
@@ -0,0 +1,24 @@
+{
+  "id": "Input12",
+  "title": "Input12",
+  "type": "object",
+  "properties": {
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "type": "string"
+    },
+    "contentType": {
+      "description": "Allowed values are:html,plaintext, pdf, docx\nIf html is specified all html tags and special characters will be stripped before processing.\nFor PDF and docx, all text will be read. Scanned documents will not work.",
+      "type": "string"
+    },
+    "url": {
+      "description": "URL where the text for the NER task is stored.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "lang",
+    "contentType",
+    "url"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_13.json b/firstlanguage_python/schemas/input_13.json
new file mode 100644
index 0000000..71a5483
--- /dev/null
+++ b/firstlanguage_python/schemas/input_13.json
@@ -0,0 +1,19 @@
+{
+  "id": "Input13",
+  "title": "Input13",
+  "type": "object",
+  "properties": {
+    "text": {
+      "description": "Text for which summary should be generated",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "text",
+    "lang"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_14.json b/firstlanguage_python/schemas/input_14.json
new file mode 100644
index 0000000..1ed5504
--- /dev/null
+++ b/firstlanguage_python/schemas/input_14.json
@@ -0,0 +1,24 @@
+{
+  "id": "Input14",
+  "title": "Input14",
+  "type": "object",
+  "properties": {
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "type": "string"
+    },
+    "contentType": {
+      "description": "Allowed values are:html,plaintext, pdf, docx\nIf html is specified all html tags and special characters will be stripped before processing.\nFor PDF and docx, all text will be read. Scanned documents will not work.",
+      "type": "string"
+    },
+    "url": {
+      "description": "Text from this URL will be read and a summary generated",
+      "type": "string"
+    }
+  },
+  "required": [
+    "lang",
+    "contentType",
+    "url"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_15.json b/firstlanguage_python/schemas/input_15.json
new file mode 100644
index 0000000..92875f2
--- /dev/null
+++ b/firstlanguage_python/schemas/input_15.json
@@ -0,0 +1,19 @@
+{
+  "id": "Input15",
+  "title": "Input15",
+  "type": "object",
+  "properties": {
+    "text": {
+      "description": "Text for which translation should be generated",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "text",
+    "lang"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_16.json b/firstlanguage_python/schemas/input_16.json
new file mode 100644
index 0000000..f3ac596
--- /dev/null
+++ b/firstlanguage_python/schemas/input_16.json
@@ -0,0 +1,29 @@
+{
+  "id": "Input16",
+  "title": "Input16",
+  "type": "object",
+  "properties": {
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "type": "string"
+    },
+    "contentType": {
+      "description": "Allowed values are:html,plaintext, pdf, docx\nIf html is specified all html tags and special characters will be stripped before processing.\nFor PDF and docx, all text will be read. Scanned documents will not work.",
+      "type": "string"
+    },
+    "url": {
+      "description": "Text from this URL will be read and a translation generated",
+      "type": "string"
+    },
+    "preserveFormat": {
+      "description": "Accepted values are true, false.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "lang",
+    "contentType",
+    "url",
+    "preserveFormat"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_2.json b/firstlanguage_python/schemas/input_2.json
new file mode 100644
index 0000000..cac05ea
--- /dev/null
+++ b/firstlanguage_python/schemas/input_2.json
@@ -0,0 +1,33 @@
+{
+  "id": "Input2",
+  "title": "Input2",
+  "type": "object",
+  "properties": {
+    "context": {
+      "description": "Word or sentence or a paragraph. Special characters will not be stripped.",
+      "example": "Let us begin the API development.",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "example": "en",
+      "type": "string"
+    },
+    "labels": {
+      "description": "Labels to classify",
+      "example": [
+        "good",
+        "bad"
+      ],
+      "type": "array",
+      "items": {
+        "type": "object"
+      }
+    }
+  },
+  "required": [
+    "context",
+    "lang",
+    "labels"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_3.json b/firstlanguage_python/schemas/input_3.json
new file mode 100644
index 0000000..66e6cc9
--- /dev/null
+++ b/firstlanguage_python/schemas/input_3.json
@@ -0,0 +1,39 @@
+{
+  "id": "Input3",
+  "title": "Input3",
+  "type": "object",
+  "properties": {
+    "url": {
+      "description": "URL where the content is hosted.",
+      "example": "http://news.bbc.co.uk/2/hi/health/2284783.stm",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "example": "en",
+      "type": "string"
+    },
+    "contentType": {
+      "description": "Allowed values are:html,plaintext, pdf, docx\nIf html is specified all html tags and special characters will be stripped before processing.\nFor PDF and docx, all text will be read. Scanned documents will not work.",
+      "example": "html",
+      "type": "string"
+    },
+    "labels": {
+      "description": "Labels to classify",
+      "example": [
+        "good",
+        "bad"
+      ],
+      "type": "array",
+      "items": {
+        "type": "object"
+      }
+    }
+  },
+  "required": [
+    "url",
+    "lang",
+    "contentType",
+    "labels"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_4.json b/firstlanguage_python/schemas/input_4.json
new file mode 100644
index 0000000..c720f57
--- /dev/null
+++ b/firstlanguage_python/schemas/input_4.json
@@ -0,0 +1,21 @@
+{
+  "id": "Input4",
+  "title": "Input4",
+  "type": "object",
+  "properties": {
+    "text": {
+      "description": "Word or sentence or a paragraph. Special characters will not be stripped.",
+      "example": "அவள் வேகமாக ஓடினாள்",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed ISO language code. Refer languages section.",
+      "example": "ta",
+      "type": "string"
+    }
+  },
+  "required": [
+    "text",
+    "lang"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_5.json b/firstlanguage_python/schemas/input_5.json
new file mode 100644
index 0000000..a934a6f
--- /dev/null
+++ b/firstlanguage_python/schemas/input_5.json
@@ -0,0 +1,24 @@
+{
+  "id": "Input5",
+  "title": "Input5",
+  "type": "object",
+  "properties": {
+    "question": {
+      "description": "Question to be answered from the context given. Only One question can be asked at a time. Special characters will not be stripped.",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "type": "string"
+    },
+    "context": {
+      "description": "Sentence or a paragraph. Special characters will not be stripped. Maximum size limit is ~5KB of context text.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "question",
+    "lang",
+    "context"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_6.json b/firstlanguage_python/schemas/input_6.json
new file mode 100644
index 0000000..b27bb10
--- /dev/null
+++ b/firstlanguage_python/schemas/input_6.json
@@ -0,0 +1,29 @@
+{
+  "id": "Input6",
+  "title": "Input6",
+  "type": "object",
+  "properties": {
+    "question": {
+      "description": "Question to be answered from the context given. Only One question can be asked at a time. Special characters will not be stripped.",
+      "type": "string"
+    },
+    "lang": {
+      "description": "Allowed language code. Refer Allowed languages section.",
+      "type": "string"
+    },
+    "contentType": {
+      "description": "Allowed values are:html,plaintext, pdf, docx\nIf html is specified all html tags and special characters will be stripped before processing.\nFor PDF and docx, all text will be read. Scanned documents will not work.",
+      "type": "string"
+    },
+    "url": {
+      "description": "URL where the context for the question is stored.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "question",
+    "lang",
+    "contentType",
+    "url"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_7.json b/firstlanguage_python/schemas/input_7.json
new file mode 100644
index 0000000..338dcf1
--- /dev/null
+++ b/firstlanguage_python/schemas/input_7.json
@@ -0,0 +1,27 @@
+{
+  "id": "Input7",
+  "title": "Input7",
+  "type": "object",
+  "properties": {
+    "flattable": {
+      "description": "Table if JSON format",
+      "type": "object"
+    },
+    "sendBackRows": {
+      "description": "Send back original rows from which the answer was extracted. Input either true or false.",
+      "type": "boolean"
+    },
+    "questions": {
+      "description": "Array of questions.",
+      "type": "array",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": [
+    "flattable",
+    "sendBackRows",
+    "questions"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_8.json b/firstlanguage_python/schemas/input_8.json
new file mode 100644
index 0000000..eb332a7
--- /dev/null
+++ b/firstlanguage_python/schemas/input_8.json
@@ -0,0 +1,27 @@
+{
+  "id": "Input8",
+  "title": "Input8",
+  "type": "object",
+  "properties": {
+    "url": {
+      "description": "URL of the CSV file.",
+      "type": "string"
+    },
+    "sendBackRows": {
+      "description": "Send back original rows from which the answer was extracted. Input either true or false.",
+      "type": "boolean"
+    },
+    "questions": {
+      "description": "Array of questions",
+      "type": "array",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": [
+    "url",
+    "sendBackRows",
+    "questions"
+  ]
+}
diff --git a/firstlanguage_python/schemas/input_9.json b/firstlanguage_python/schemas/input_9.json
new file mode 100644
index 0000000..443bce0
--- /dev/null
+++ b/firstlanguage_python/schemas/input_9.json
@@ -0,0 +1,13 @@
+{
+  "id": "Input9",
+  "title": "Input9",
+  "type": "object",
+  "properties": {
+    "url": {
+      "type": "string"
+    }
+  },
+  "required": [
+    "url"
+  ]
+}
diff --git a/firstlanguage_python/schemas/orignal_string.json b/firstlanguage_python/schemas/orignal_string.json
new file mode 100644
index 0000000..52621f4
--- /dev/null
+++ b/firstlanguage_python/schemas/orignal_string.json
@@ -0,0 +1,14 @@
+{
+  "id": "originalString",
+  "title": "originalString",
+  "type": "object",
+  "properties": {
+    "morph_attr": {
+      "description": "",
+      "type": "array",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/responseclassify.json b/firstlanguage_python/schemas/responseclassify.json
new file mode 100644
index 0000000..5ba90dc
--- /dev/null
+++ b/firstlanguage_python/schemas/responseclassify.json
@@ -0,0 +1,24 @@
+{
+  "id": "responseclassify",
+  "title": "responseclassify",
+  "extensions": {
+    "x-internal": true
+  },
+  "type": "object",
+  "properties": {
+    "labels": {
+      "description": "",
+      "type": "array",
+      "items": {
+        "type": "string"
+      }
+    },
+    "scores": {
+      "description": "",
+      "type": "array",
+      "items": {
+        "type": "number"
+      }
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/responselemma.json b/firstlanguage_python/schemas/responselemma.json
new file mode 100644
index 0000000..5a3c6fb
--- /dev/null
+++ b/firstlanguage_python/schemas/responselemma.json
@@ -0,0 +1,13 @@
+{
+  "id": "responselemma",
+  "title": "responselemma",
+  "type": "object",
+  "properties": {
+    "originalText": {
+      "type": "string"
+    },
+    "lemmatized": {
+      "type": "string"
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/responsemorph.json b/firstlanguage_python/schemas/responsemorph.json
new file mode 100644
index 0000000..a8eff43
--- /dev/null
+++ b/firstlanguage_python/schemas/responsemorph.json
@@ -0,0 +1,13 @@
+{
+  "id": "responsemorph",
+  "title": "responsemorph",
+  "extensions": {
+    "x-internal": true
+  },
+  "type": "object",
+  "properties": {
+    "originalString": {
+      "$ref": "originalString.json"
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/responsepo.json b/firstlanguage_python/schemas/responsepo.json
new file mode 100644
index 0000000..3dbec73
--- /dev/null
+++ b/firstlanguage_python/schemas/responsepo.json
@@ -0,0 +1,13 @@
+{
+  "id": "responsepo",
+  "title": "responsepo",
+  "type": "object",
+  "properties": {
+    "originalText": {
+      "type": "string"
+    },
+    "postag": {
+      "type": "string"
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/responsestem.json b/firstlanguage_python/schemas/responsestem.json
new file mode 100644
index 0000000..37781fc
--- /dev/null
+++ b/firstlanguage_python/schemas/responsestem.json
@@ -0,0 +1,13 @@
+{
+  "id": "responsestem",
+  "title": "responsestem",
+  "type": "object",
+  "properties": {
+    "originalText": {
+      "type": "string"
+    },
+    "stem": {
+      "type": "string"
+    }
+  }
+}
diff --git a/firstlanguage_python/schemas/text_input.json b/firstlanguage_python/schemas/text_input.json
new file mode 100644
index 0000000..8a12e43
--- /dev/null
+++ b/firstlanguage_python/schemas/text_input.json
@@ -0,0 +1,16 @@
+{
+  "id": "TextInput",
+  "title": "TextInput",
+  "extensions": {
+    "x-internal": true
+  },
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input.json"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/text_input_classify.json b/firstlanguage_python/schemas/text_input_classify.json
new file mode 100644
index 0000000..1bcd2b0
--- /dev/null
+++ b/firstlanguage_python/schemas/text_input_classify.json
@@ -0,0 +1,16 @@
+{
+  "id": "TextInputClassify",
+  "title": "TextInputClassify",
+  "extensions": {
+    "x-internal": true
+  },
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input2"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/text_input_tamil.json b/firstlanguage_python/schemas/text_input_tamil.json
new file mode 100644
index 0000000..f501335
--- /dev/null
+++ b/firstlanguage_python/schemas/text_input_tamil.json
@@ -0,0 +1,24 @@
+{
+  "id": "TextInputTamil",
+  "title": "TextInputTamil",
+  "extensions": {
+    "x-examples": {
+      "example-1": {
+        "input": {
+          "text": "அவள் வேகமாக ஓடினாள்",
+          "lang": "ta"
+        }
+      }
+    },
+    "x-internal": true
+  },
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input4"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/url_input.json b/firstlanguage_python/schemas/url_input.json
new file mode 100644
index 0000000..c5a61bc
--- /dev/null
+++ b/firstlanguage_python/schemas/url_input.json
@@ -0,0 +1,25 @@
+{
+  "id": "URLInput",
+  "title": "URLInput",
+  "extensions": {
+    "x-examples": {
+      "example-1": {
+        "input": {
+          "url": "http://news.bbc.co.uk/2/hi/health/2284783.stm",
+          "lang": "en",
+          "contentType": "html"
+        }
+      }
+    },
+    "x-internal": true
+  },
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input1"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/schemas/url_input_classify.json b/firstlanguage_python/schemas/url_input_classify.json
new file mode 100644
index 0000000..055c9d8
--- /dev/null
+++ b/firstlanguage_python/schemas/url_input_classify.json
@@ -0,0 +1,16 @@
+{
+  "id": "URLInputClassify",
+  "title": "URLInputClassify",
+  "extensions": {
+    "x-internal": true
+  },
+  "type": "object",
+  "properties": {
+    "input": {
+      "$ref": "Input3"
+    }
+  },
+  "required": [
+    "input"
+  ]
+}
diff --git a/firstlanguage_python/utilities/__init__.py b/firstlanguage_python/utilities/__init__.py
new file mode 100644
index 0000000..6ade54b
--- /dev/null
+++ b/firstlanguage_python/utilities/__init__.py
@@ -0,0 +1,3 @@
+__all__ = [
+    'file_wrapper.py',
+]
diff --git a/firstlanguage_python/utilities/__pycache__/__init__.cpython-39.pyc b/firstlanguage_python/utilities/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..17d24a5
Binary files /dev/null and b/firstlanguage_python/utilities/__pycache__/__init__.cpython-39.pyc differ
diff --git a/firstlanguage_python/utilities/__pycache__/schema_validator_wrapper.cpython-39.pyc b/firstlanguage_python/utilities/__pycache__/schema_validator_wrapper.cpython-39.pyc
new file mode 100644
index 0000000..dd0c56d
Binary files /dev/null and b/firstlanguage_python/utilities/__pycache__/schema_validator_wrapper.cpython-39.pyc differ
diff --git a/firstlanguage_python/utilities/file_wrapper.py b/firstlanguage_python/utilities/file_wrapper.py
new file mode 100644
index 0000000..21c594d
--- /dev/null
+++ b/firstlanguage_python/utilities/file_wrapper.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage_python
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+
+class FileWrapper():
+
+    """A wrapper to allow passing in content type for file uploads."""
+
+    def __init__(self, file, content_type='application/octet-stream'):
+        self._file_stream = file
+        self._content_type = content_type
+
+    @property
+    def file_stream(self):
+        return self._file_stream
+
+    @property
+    def content_type(self):
+        return self._content_type
diff --git a/firstlanguage_python/utilities/schema_validator_wrapper.py b/firstlanguage_python/utilities/schema_validator_wrapper.py
new file mode 100644
index 0000000..64cb3e3
--- /dev/null
+++ b/firstlanguage_python/utilities/schema_validator_wrapper.py
@@ -0,0 +1,21 @@
+
+import json
+import os
+from jsonschema import RefResolver, Draft4Validator
+
+
+class SchemaValidatorWrapper(object):
+    cache = dict()
+
+    @staticmethod
+    def getValidator(fileName):
+        if fileName in SchemaValidatorWrapper.cache:
+            schema = SchemaValidatorWrapper.cache[fileName]
+        else:
+            schema = json.load(open(fileName))
+            SchemaValidatorWrapper.cache[fileName] = schema
+
+        schema_path = 'file:///{0}/'.format(
+            os.path.dirname(os.path.abspath(fileName)).replace("\\", "/"))
+        resolver = RefResolver(schema_path, schema)
+        return Draft4Validator(schema=schema, resolver=resolver)
diff --git a/index.md b/index.md
new file mode 100644
index 0000000..bd77d30
--- /dev/null
+++ b/index.md
@@ -0,0 +1,186 @@
+
+# Getting Started with FirstLanguage API
+
+## Introduction
+
+Collection of NLP APIs to help developers. We have grouped the APIs under Basic and Advanced. Basic APIs cover all basic text operations like POSTag, Stemmer etc and Advanced cover all the APIs like QA, translation etc.
+
+### OpenAPI Specification
+
+This API is documented in **OpenAPI v3.0 format**.
+In addition to standard
+OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.html).
+
+## Building
+
+You can use the SDK either from source by cloning from GitHub using our [repo](https://github.com/FirstLanguage/firstlanguage_python.git)
+
+Or you can use PIP to install our package directly by using the command.
+
+```
+pip install firstlanguage-python
+```
+
+## Follow below steps if you want to use SDK from our PIP published package
+
+Once the package is installed you can directly use our package in your code. Below is a working example. Replace <Your_API_KEY> with your API Key from the dashboard.
+
+```
+from firstlanguage_python.firstlanguage_client import Client
+from firstlanguage_python.configuration import Environment
+import jsonpickle
+
+
+client = Client(
+    apikey='<Your_API_KEY>',
+    environment=Environment.PRODUCTION,)
+
+reqbody='{"input":{"text":"அவள் வேகமாக ஓடினாள்","lang":"ta"} }'
+
+body = jsonpickle.decode(reqbody)
+basic_api_controller = client.basic_api
+
+result = basic_api_controller.get_stemmer(body)
+
+for res in result:
+  print("Original Text passed: "+res.original_text)
+  print("Stemmed result: "+res.stem)
+
+
+```
+
+Save the above file as test.py and run it using the below command
+
+```
+python3 test.py
+```
+
+You will get an output like below
+
+```
+200
+Original Text passed: அவள்
+Stemmed result: அவள்
+Original Text passed: வேகமாக
+Stemmed result: வேகம்
+Original Text passed: ஓடினாள்
+Stemmed result: ஓடி
+```
+
+## Follow below steps if you want to use SDK from source
+
+You must have Python `3 >=3.7, <= 3.9` installed on your system to install and run this SDK. This SDK package depends on other Python packages like nose, jsonpickle etc. These dependencies are defined in the `requirements.txt` file that comes with the SDK. To resolve these dependencies, you can use the PIP Dependency manager. Install it by following steps at [https://pip.pypa.io/en/stable/installing/](https://pip.pypa.io/en/stable/installing/).
+
+Python and PIP executables should be defined in your PATH. Open command prompt and type `pip --version`. This should display the version of the PIP Dependency Manager installed if your installation was successful and the paths are properly defined.
+
+* Using command line, navigate to the directory containing the generated files (including `requirements.txt`) for the SDK.
+* Run the command `pip install -r requirements.txt`. This should install all the required dependencies.
+
+![Building SDK - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&step=installDependencies)
+
+## Installation
+
+The following section explains how to use the firstlanguageapi library in a new project.
+
+### 1. Open Project in an IDE
+
+Open up a Python IDE like PyCharm. The basic workflow presented here is also applicable if you prefer using a different editor or IDE.
+
+![Open project in PyCharm - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&step=pyCharm)
+
+Click on `Open` in PyCharm to browse to your generated SDK directory and then click `OK`.
+
+![Open project in PyCharm - Step 2](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&step=openProject0)
+
+The project files will be displayed in the side bar as follows:
+
+![Open project in PyCharm - Step 3](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&step=openProject1)
+
+### 2. Add a new Test Project
+
+Create a new directory by right clicking on the solution name as shown below:
+
+![Add a new project in PyCharm - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&step=createDirectory)
+
+Name the directory as "test".
+
+![Add a new project in PyCharm - Step 2](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&step=nameDirectory)
+
+Add a python file to this project.
+
+![Add a new project in PyCharm - Step 3](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&step=createFile)
+
+Name it "testSDK".
+
+![Add a new project in PyCharm - Step 4](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&step=nameFile)
+
+In your python file you will be required to import the generated python library using the following code lines
+
+```python
+from firstlanguageapi.firstlanguageapi_client import FirstlanguageapiClient
+```
+
+![Add a new project in PyCharm - Step 5](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&libraryName=firstlanguageapi.firstlanguageapi_client&className=FirstlanguageapiClient&step=projectFiles)
+
+After this you can write code to instantiate an API client object, get a controller object and  make API calls. Sample code is given in the subsequent sections.
+
+### 3. Run the Test Project
+
+To run the file within your test project, right click on your Python file inside your Test project and click on `Run`
+
+![Run Test Project - Step 1](https://apidocs.io/illustration/python?workspaceFolder=Firstlanguageapi-Python&projectName=firstlanguageapi&libraryName=firstlanguageapi.firstlanguageapi_client&className=FirstlanguageapiClient&step=runProject)
+
+## Test the SDK
+
+You can test the generated SDK and the server with test cases. `unittest` is used as the testing framework and `nose` is used as the test runner. You can run the tests as follows:
+
+Navigate to the root directory of the SDK and run the following commands
+
+```
+pip install -r test-requirements.txt
+nosetests
+```
+
+## Initialize the API Client
+
+**_Note:_** Documentation for the client can be found [here.](/doc/client.html)
+
+The following parameters are configurable for the API Client:
+
+| Parameter | Type | Description |
+|  --- | --- | --- |
+| `apikey` | `string` | API Key can be copied from your dashboard |
+| `http_client_instance` | `HttpClient` | The Http Client passed from the sdk user for making requests |
+| `override_http_client_configuration` | `bool` | The value which determines to override properties of the passed Http Client from the sdk user |
+| `timeout` | `float` | The value to use for connection timeout. <br> **Default: 60** |
+| `max_retries` | `int` | The number of times to retry an endpoint call if it fails. <br> **Default: 0** |
+| `backoff_factor` | `float` | A backoff factor to apply between attempts after the second try. <br> **Default: 2** |
+| `retry_statuses` | `Array of int` | The http statuses on which retry is to be done. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
+| `retry_methods` | `Array of string` | The http methods on which retry is to be done. <br> **Default: ['GET', 'PUT']** |
+
+The API client can be initialized as follows:
+
+```python
+from firstlanguageapi.firstlanguageapi_client import FirstlanguageapiClient
+from firstlanguageapi.configuration import Environment
+
+client = FirstlanguageapiClient(
+    apikey='apikey',
+    environment=Environment.PRODUCTION,)
+```
+
+## Authorization
+
+This API uses `Custom Header Signature`.
+
+## List of APIs
+
+* [Basic APIs](/doc/controllers/basic-api.html)
+* [Advanced APIs](/doc/controllers/advanced-api.html)
+
+## Classes Documentation
+
+* [Utility Classes](/doc/utility-classes.html)
+* [HttpResponse](/doc/http-response.html)
+* [HttpRequest](/doc/http-request.html)
+
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..c536813
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,6 @@
+jsonpickle~=1.4, >= 1.4.1
+requests~=2.25
+cachecontrol~=0.12.6
+python-dateutil~=2.8.1
+enum34~=1.1, >=1.1.10
+jsonschema~=3.2.0
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..8b0659b
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,3 @@
+# Inside of setup.cfg
+[metadata]
+description-file = README.html
\ No newline at end of file
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..407958e
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+
+import sys
+from setuptools import setup, find_packages
+
+if sys.version_info[0] < 3:
+    with open('README.md', 'r') as fh:
+        long_description = fh.read()
+else:
+    with open('README.md', 'r', encoding='utf-8') as fh:
+        long_description = fh.read()
+
+setup(
+    name='firstlanguage_python',
+    version='2.5.1',
+    description='Python client library for FirstLanguage API',
+    long_description=long_description,
+    long_description_content_type="text/markdown",
+    author='FirstLanguage',
+    author_email='info@firstlanguage.in',
+    url='https://www.firstlanguage.in/contactus',
+    download_url = 'https://github.com/FirstLanguage/firstlanguage_python/archive/refs/tags/v2.5.tar.gz',
+    keywords = ['FirstLanguage API', 'NLP', 'SDK', 'Python', 'Natural Language Processing'],  
+    packages=find_packages(),
+    install_requires=[
+        'jsonpickle~=1.4, >= 1.4.1',
+        'requests~=2.25',
+        'cachecontrol~=0.12.6',
+        'python-dateutil~=2.8.1',
+        'jsonschema~=3.2.0'
+    ],
+    tests_require=[
+        'nose>=1.3.7'
+    ],
+    test_suite = 'nose.collector'
+)
\ No newline at end of file
diff --git a/test-requirements.txt b/test-requirements.txt
new file mode 100644
index 0000000..5fe0fd7
--- /dev/null
+++ b/test-requirements.txt
@@ -0,0 +1 @@
+nose>=1.3.7
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/__pycache__/__init__.cpython-39.pyc b/tests/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..fea2032
Binary files /dev/null and b/tests/__pycache__/__init__.cpython-39.pyc differ
diff --git a/tests/__pycache__/http_response_catcher.cpython-39.pyc b/tests/__pycache__/http_response_catcher.cpython-39.pyc
new file mode 100644
index 0000000..a98fb4c
Binary files /dev/null and b/tests/__pycache__/http_response_catcher.cpython-39.pyc differ
diff --git a/tests/__pycache__/test_helper.cpython-39.pyc b/tests/__pycache__/test_helper.cpython-39.pyc
new file mode 100644
index 0000000..63f05ad
Binary files /dev/null and b/tests/__pycache__/test_helper.cpython-39.pyc differ
diff --git a/tests/controllers/__init__.py b/tests/controllers/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/controllers/__pycache__/__init__.cpython-39.pyc b/tests/controllers/__pycache__/__init__.cpython-39.pyc
new file mode 100644
index 0000000..778ee62
Binary files /dev/null and b/tests/controllers/__pycache__/__init__.cpython-39.pyc differ
diff --git a/tests/controllers/__pycache__/controller_test_base.cpython-39.pyc b/tests/controllers/__pycache__/controller_test_base.cpython-39.pyc
new file mode 100644
index 0000000..483b2bd
Binary files /dev/null and b/tests/controllers/__pycache__/controller_test_base.cpython-39.pyc differ
diff --git a/tests/controllers/__pycache__/test_advanced_ap_is_controller.cpython-39.pyc b/tests/controllers/__pycache__/test_advanced_ap_is_controller.cpython-39.pyc
new file mode 100644
index 0000000..65ff94a
Binary files /dev/null and b/tests/controllers/__pycache__/test_advanced_ap_is_controller.cpython-39.pyc differ
diff --git a/tests/controllers/controller_test_base.py b/tests/controllers/controller_test_base.py
new file mode 100644
index 0000000..69d167b
--- /dev/null
+++ b/tests/controllers/controller_test_base.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+import unittest
+
+from firstlanguage_python.configuration import Configuration
+from firstlanguage_python.configuration import Environment
+from firstlanguage_python.firstlanguage_client import Client
+
+
+class ControllerTestBase(unittest.TestCase):
+
+    """All test classes inherit from this base class. It abstracts out
+    common functionality and configuration variables set up."""
+
+    @classmethod
+    def setUpClass(cls):
+        """Class method called once before running tests in a test class."""
+        cls.request_timeout = 30
+        cls.assert_precision = 0.01
+        cls.config = ControllerTestBase.create_configuration()
+        cls.client = Client()
+        cls.auth_managers = cls.client.auth_managers
+    @staticmethod
+    def create_configuration():
+        return Configuration()
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/tests/controllers/test_advanced_ap_is_controller.py b/tests/controllers/test_advanced_ap_is_controller.py
new file mode 100644
index 0000000..95d24ec
--- /dev/null
+++ b/tests/controllers/test_advanced_ap_is_controller.py
@@ -0,0 +1,329 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+import json
+import dateutil.parser
+import jsonpickle
+
+from tests.controllers.controller_test_base import ControllerTestBase
+from tests.test_helper import TestHelper
+from tests.http_response_catcher import HttpResponseCatcher
+from firstlanguage_python.api_helper import APIHelper
+from firstlanguage_python.controllers.advanced_api_controller import AdvancedAPIsController
+
+
+class AdvancedAPIsControllerTests(ControllerTestBase):
+
+    @classmethod
+    def setUpClass(cls):
+        super(AdvancedAPIsControllerTests, cls).setUpClass()
+        cls.response_catcher = HttpResponseCatcher()
+        cls.controller = AdvancedAPIsController(cls.config, cls.response_catcher)
+
+    # # Stemmer : Defintion and it's usage
+    #
+    ## Languages covered:
+    def test_get_qa(self):
+        # Parameters for the API call
+        body = AdvancedAPIs.deserialize_getQA('{"input":{"question":"எவை மூன்றும் எப்போதும் ஒன்றாகவே இருக்கும்?",'
+            '"lang":"ta","context":"உப்பு, புளி, மிளகாய் மூன்றும் எப்போதும் ஒன்'
+            'றாகவே இருக்கும். ஒருநாள், “குழம்பிற்கு யார் முக்கியம்? நீயா! நானா!'
+            '” என்று சண்டை போட்டன. மூன்று பேரும் தனிதனியாகச் சென்று குழம்பில் ச'
+            'ேரலாம் என்று முடிவு செய்தன. முதல் நாள், உப்பு மட்டும் குழம்பில் சே'
+            'ர்ந்து கொண்டது. “ஆ! ஒரே உப்பு! வாயில் வைக்க முடியவில்லை!” என்று எல'
+            '்லோரும் கத்தினார்கள்"}}')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_qa(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('{"score":0.028566665947437286,"start":0,"end":20,"answer":"உப்பு, '
+            'புளி, மிளகாய்"}')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
+    # # TableQA : Defintion and it's usage
+    #
+    #Table QA uses TAPAS based model to get answers from table input. The table can be parsed into a JSON object or it can be a link to a CSV file. Currently only Plain CSV file is supported. 
+    #
+    #This API works only for English language currently
+    #
+    #Example for flattend table in JSON Format:<br/>
+    #{"Cities": ["Paris, France", "London, England", "Lyon, France"], "Inhabitants": ["2.161", "8.982", "0.513"]}
+    #
+    #The API can return the original table rows from which the answer was extracted based on the flag 'sendBackRows'
+    def test_get_table_qa(self):
+        # Parameters for the API call
+        body = AdvancedAPIs.deserialize_getTableQA('{"input":{"flattable":{"Cities":["Paris, France","London, England"'
+            ',"Lyon, France"],"Inhabitants":["2.161","8.982","0.513"]},"sendBac'
+            'kRows":false,"questions":["How many inhabitants in France","How Ma'
+            'ny inhabitants in England"]}}')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_table_qa(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('[{"query":"How many inhabitants in France","answer":["SUM > 2.674"'
+            '],"rows":["Paris, France,2.161","Lyon, France,0.513"]},{"query":"H'
+            'ow Many inhabitants in England","answer":["SUM > 8.982"],"rows":["'
+            'London, England,8.982"]}]')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
+    # # Named Entity Recognition : Defintion and it's usage
+    #Named Entity Recognitiion  (NER) is extracting the specific Nouns such as, Person Names, Location names, Organization Names, Currency , Dates. It is a classification task. NER can be used as a sub-task in applications such as Search Systems, Chatbots, Question Answering systems, Text Summarization etc. 
+    #
+    ## Languages covered:
+    #
+    #| Languages          | ISO Code |
+    #|--------------------|----------|
+    #| Arabic             | ar       |
+    #| Chinese            | zh       |
+    #| Dutch              | nl       |
+    #| English            | en       |
+    #| French             | fr       |
+    #| German             | de       |
+    #| Italian            | it       |
+    #| Latvian            | lv       |
+    #| Portuguese         | pt       |
+    #| Spanish            | es       |
+    #
+    #For other languages we cannot guarantee results but you can try with ISO code. 
+    #For ISO code reference, please check the link https://www.loc.gov/standards/iso639-2/php/code_list.php
+    #
+    #
+    #
+    def test_get_ner(self):
+        # Parameters for the API call
+        body = AdvancedAPIs.deserialize_getNER('{"input":{"lang":"ar","text":"إسمي محمد وأسكن في برلين"}}')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_ner(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('[{"entity_group":"PER","word":"محمد","start":"4","end":"9"},{"enti'
+            'ty_group":"LOC","word":"برلين","start":"18","end":"24"}]')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
+    # # Summarization : Defintion and it's usage
+    #Summarization generates a crisp content of the large input text which is highly coherent. 
+    #
+    #
+    #| Languages               | ISO Code |
+    #|-------------------------|----------|
+    #| Amharic                 | am       |
+    #| Arabic                  |  ar      |
+    #| Azerbaijani             |  az      |
+    #| Bengali                 |  bn      |
+    #| Burmese                 |  my      |
+    #| Chinese                 |  zh      |
+    #| English                 |  en      |
+    #| French                  |  fr      |
+    #| Gaelic; Scottish Gaelic | gd       |
+    #| Gujarati                |  gu      |
+    #| Hausa                   |  ha      |
+    #| Hindi                   |  hi      |
+    #| Igbo                    |  ig      |
+    #| Indonesian              |  id      |
+    #| Japanese                |  ja      |
+    #| Kirghiz; Kyrgyz         | ky       |
+    #| Korean                  |  ko      |
+    #| Marathi                 |  mr      |
+    #| Nepali                  |  ne      |
+    #| Oromo                   | om       |
+    #| Persian                 | fa       |
+    #| Portuguese              |  pt      |
+    #| Punjabi                 |  pa      |
+    #| Pushto; Pashto          | ps       |
+    #| Rundi                   | rn       |
+    #| Russian                 | ru       |
+    #| Serbian                 |  sr      |
+    #| Sinhala; Sinhalese      |  si      |
+    #| Somali                  |  so      |
+    #| Spanish; Castilian      |  es      |
+    #| Swahili                 |  sw      |
+    #| Tamil                   |  ta      |
+    #| Telugu                  |  te      |
+    #| Thai                    |  th      |
+    #| Tigrinya                |  ti      |
+    #| Turkish                 |  tr      |
+    #| Ukrainian               |  uk      |
+    #| Urdu                    |  ur      |
+    #| Uzbek                   |  uz      |
+    #| Vietnamese              |  vi      |
+    #| Welsh                   |  cy      |
+    #| Yoruba                  |  yo      |
+    #
+    #
+    #
+    def test_get_summary(self):
+        # Parameters for the API call
+        body = AdvancedAPIs.deserialize_getSummary('{"input":{"lang":"en","text":"Videos that say approved vaccines ar'
+            'e dangerous and cause autism, cancer or infertility are among thos'
+            'e that will be taken down, the company said. The policy includes t'
+            'he termination of accounts of anti-vaccine influencers. Tech giant'
+            's have been criticised for not doing more to counter false health '
+            'information on their sites. In July, US President Joe Biden said s'
+            'ocial media platforms were largely responsible for people\'s scept'
+            'icism in getting vaccinated by spreading misinformation, and appea'
+            'led for them to address the issue. YouTube, which is owned by Goog'
+            'le, said 130,000 videos were removed from its platform since last '
+            'year, when it implemented a ban on content spreading misinformatio'
+            'n about Covid vaccines. In a blog post, the company said it had se'
+            'en false claims about Covid jabs spill over into misinformation ab'
+            'out vaccines in general. The new policy covers long-approved vacci'
+            'nes, such as those against measles or hepatitis B. We\'re expandin'
+            'g our medical misinformation policies on YouTube with new guidelin'
+            'es on currently administered vaccines that are approved and confir'
+            'med to be safe and effective by local health authorities and the W'
+            'HO, the post said, referring to the World Health Organization."}}')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_summary(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('{"summary":"YouTube has announced a ban on videos spreading misinf'
+            'ormation about Covid vaccines."}')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
+    # # Translation : Defintion and it's usage
+    #Machine Translation is translating the text automatically from  one language to another langauge.
+    #
+    ## Languages covered:
+    #
+    #| Languages                             | ISO Code   |
+    #|---------------------------------------|------------|
+    #|  Abkhazian                            |   ab       |
+    #|  Afrikaans                            |   af       |
+    #|  Amharic                              |   am       |
+    #|  Bashkir                              |   ba       |
+    #|  Catalan; Valencian                   |   ca       |
+    #|  Chechen                              |   ce       |
+    #|  Corsican                             |   co       |
+    #|  Chuvash                              |   cv       |
+    #|  Ewe                                  |   ee       |
+    #|  English                              |   en       |
+    #|  Basque                               |   eu       |
+    #|  Fijian                               |   fj       |
+    #|  French                               |   fr       |
+    #|  Galician                             |   gl       |
+    #|  Gujarati                             |   gu       |
+    #|  Manx                                 |   gv       |
+    #|  Hebrew                               |   he       |
+    #|  Haitian; Haitian Creole              |   ht       |
+    #|  Armenian                             |   hy       |
+    #|  Indonesian                           |   id       |
+    #|  Igbo                                 |   ig       |
+    #|  Icelandic                            |   is       |
+    #|  Japanese                             |   ja       |
+    #|  Kalaallisut; Greenlandic             |   kl       |
+    #|  Ganda                                |   lg       |
+    #|  Lingala                              |   ln       |
+    #|  Malagasy                             |   mg       |
+    #|  Marshallese                          |   mh       |
+    #|  Macedonian                           |   mk       |
+    #|  Mongolian                            |   mn       |
+    #|  Nauru                                |   na       |
+    #|  Bokmål, Norwegian; Norwegian Bokmål  |   nb       |
+    #|  Chichewa; Chewa; Nyanja              |   ny       |
+    #|  Ossetian; Ossetic                    |   os       |
+    #|  Pushto; Pashto                       |   ps       |
+    #|  Romansh                              |   rm       |
+    #|  Rundi                                |   rn       |
+    #|  Sango                                |   sg       |
+    #|  Samoan                               |   sm       |
+    #|  Shona                                |   sn       |
+    #|  Somali                               |   so       |
+    #|  Albanian                             |   sq       |
+    #|  Tamil                                |   ta       |
+    #|  Tigrinya                             |   ti       |
+    #|  Turkmen                              |   tk       |
+    #|  Tonga                                |   to       |
+    #|  Turkish                              |   tr       |
+    #|  Tsonga                               |   ts       |
+    #|  Tatar                                |   tt       |
+    #|  Tahitian                             |   ty       |
+    #|  Ukrainian                            |   uk       |
+    #|  Vietnamese                           |   vi       |
+    #|  Walloon                              |   wa       |
+    #|  Xhosa                                |   xh       |
+    #|  Yoruba                               |   yo       |
+    #|  Zulu                                 |   zu       |
+    #
+    #
+    #
+    def test_get_translate(self):
+        # Parameters for the API call
+        body = AdvancedAPIs.deserialize_getTranslate('{"input":{"lang":"ta","text":"Today is a good day"}}')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_translate(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('{"generated_text":"இன்று நல்ல நாள்."}')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
diff --git a/tests/controllers/test_basic_ap_is_controller.py b/tests/controllers/test_basic_ap_is_controller.py
new file mode 100644
index 0000000..e3e301f
--- /dev/null
+++ b/tests/controllers/test_basic_ap_is_controller.py
@@ -0,0 +1,249 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguageapi
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+import json
+import dateutil.parser
+
+from tests.controllers.controller_test_base import ControllerTestBase
+from tests.test_helper import TestHelper
+from tests.requestdeserialization.deserialize_basic_ap_is_controller import BasicApIs
+from tests.http_response_catcher import HttpResponseCatcher
+from firstlanguageapi.api_helper import APIHelper
+from firstlanguageapi.controllers.basic_ap_is_controller import BasicAPIsController
+
+
+class BasicAPIsControllerTests(ControllerTestBase):
+
+    @classmethod
+    def setUpClass(cls):
+        super(BasicAPIsControllerTests, cls).setUpClass()
+        cls.response_catcher = HttpResponseCatcher()
+        cls.controller = BasicAPIsController(cls.config, cls.auth_managers, cls.response_catcher)
+
+    # # Stemmer : Defintion and it's usage
+    #A word takes different inflectional forms. For instance, the word, "Compute" can take the forms, "computing", "computation",  and "computerize". The NLP applications such as Search Engines and Information Extraction would want to store the base or stem of the word, i.e "Compute" instead of accomodating all its inflected forms. This will yield in dimensionality reduction and incerases the efficiency of the system. The stemmer cuts the prefix and suffix of a word. 
+    #
+    # # Languages covered:
+    #  Our stemmer works for the following  26 languages. 
+    #  
+    #| Languages    | ISO Code   |
+    #|--------------|------------|
+    #|  Arabic      |  ar        |
+    #|  Catalan     |  ca        |
+    #|  Danish      |  da        |
+    #|  German      |  de        |
+    #|  Greek       |  el        |
+    #|  English     |  en        |
+    #|  Spanish     |  es        |
+    #|  Basque      |  eu        |
+    #|  Finnish     |  fi        |
+    #|  French      |  fr        |
+    #|  Irish       |  ga        |
+    #|  Hindi       |  hi        |
+    #|  Hungarian   |  hu        |
+    #|  Indonesian  |  id        |
+    #|  Italian     |  it        |
+    #|  Lithuanian  |  lt        |
+    #|  Nepali      |  ne        |
+    #|  Dutch       |  nl        |
+    #|  Norwegian   |  no        |
+    #|  Portuguese  |  pt        |
+    #|  Romanian    |  ro        |
+    #|  Russian     |  ru        |
+    #|  Serbian     |  sr        |
+    #|  Swedish     |  sv        |
+    #|  Tamil       |  ta        |
+    #|  Turkish     |  tr        |
+    #
+    def test_get_stemmer(self):
+        # Parameters for the API call
+        body = BasicAPIs.deserialize_getStemmer('{"input":{"text":"அவள் வேகமாக ஓடினாள்","lang":"ta"}}')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_stemmer(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('[{"originalText":"அவள்","stem":"அவள்"},{"originalText":"வேகமாக","ste'
+            'm":"வேகம்"},{"originalText":"ஓடினாள்","stem":"ஓடி"}]')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
+    # # Lemmatizer : Defintion and it's usage
+    #
+    #Lemmatizer is similar to stemmer that gives the stemmed version of a word but lemmatizer differs from the stemmer in giving a meaningful stem or the lemma. For instance, for the word, "smiling", the stemmer would give, "smil", stemming the suffix, "ing" but the lemmatizer would give the meaningful stem, "smile". lemmatizers can be used in applications such as,  Machine Translation, Search Engines, Text Summarization etc.
+    #
+    ## Languages covered:
+    #| Languages          | ISO Code |
+    #|--------------------|----------|
+    #| Catalan            | ca       |
+    #| Danish             | da       |
+    #| Dutch              | nl       |
+    #| English            | en       |
+    #| French             | fr       |
+    #| German             | de       |
+    #| Greek              | el       |
+    #| Italian            | it       |
+    #| Lithuanian         | lt       |
+    #| Macedonian         | mk       |
+    #| Norwegian (Bokmål) | nb       |
+    #| Polish             | pl       |
+    #| Portuguese         | pt       |
+    #| Romanian           | ro       |
+    #| Russian            | ru       |
+    #| Spanish            | es       |
+    #
+    #
+    #
+    #
+    def test_get_lemma(self):
+        # Parameters for the API call
+        body = BasicAPIs.deserialize_getLemma('{"input":{"text":"Smiling makes everyone happy","lang":"en"}}')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_lemma(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('[{"originalText":"Smiling","lemmatized":"smile"},{"originalText":"ma'
+            'kes","lemmatized":"make"},{"originalText":"everyone","lemmatized":"'
+            'everyone"},{"originalText":"happy","lemmatized":"happy"}]')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
+    # # Morphological Analyzer : Defintion and it's usage
+    #Morphological Analyzer analyzes how a word is formed. It breaks a word into smaller units called, "morphemes" and gives a clue on the pattern of words of a particular langauge.  It can be used for building applications such as,  Machine Translation, Text Summarization, Search systems etc. 
+    #
+    #
+    ## Languages covered:
+    #| Languages          | ISO Code |
+    #|--------------------|----------|
+    #| Catalan            | ca       |
+    #| Danish             | da       |
+    #| Dutch              | nl       |
+    #| English            | en       |
+    #| French             | fr       |
+    #| German             | de       |
+    #| Greek              | el       |
+    #| Italian            | it       |
+    #| Japanese           | ja       |
+    #| Lithuanian         | lt       |
+    #| Macedonian         | mk       |
+    #| Norwegian (Bokmål) | nb       |
+    #| Polish             | pl       |
+    #| Portuguese         | pt       |
+    #| Russian            | ru       |
+    #| Spanish            | es       |
+    #
+    def test_get_morph(self):
+        # Parameters for the API call
+        body = BasicAPIs.deserialize_getMorph('{"input":{"text":"Let us begin the API development.","lang":"en"}}'
+            '')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_morph(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('{"Let":{"VerbForm":["Inf"],"Case":["Acc"],"Number":["Sing"],"Perso'
+            'n":["1"],"PronType":["Art"],"Definite":["Def"],"NounType":["Prop"]'
+            '},"us":{"VerbForm":["Inf"],"Case":["Acc"],"Number":["Sing"],"Perso'
+            'n":["1"],"PronType":["Art"],"Definite":["Def"],"NounType":["Prop"]'
+            '},"begin":{"VerbForm":["Inf"],"Case":["Acc"],"Number":["Sing"],"Pe'
+            'rson":["1"],"PronType":["Art"],"Definite":["Def"],"NounType":["Pro'
+            'p"]},"the":{"VerbForm":["Inf"],"Case":["Acc"],"Number":["Sing"],"P'
+            'erson":["1"],"PronType":["Art"],"Definite":["Def"],"NounType":["Pr'
+            'op"]},"API":{"VerbForm":["Inf"],"Case":["Acc"],"Number":["Sing"],"'
+            'Person":["1"],"PronType":["Art"],"Definite":["Def"],"NounType":["P'
+            'rop"]},"development":{"VerbForm":["Inf"],"Case":["Acc"],"Number":['
+            '"Sing"],"Person":["1"],"PronType":["Art"],"Definite":["Def"],"Noun'
+            'Type":["Prop"]},".":{"VerbForm":["Inf"],"Case":["Acc"],"Number":["'
+            'Sing"],"Person":["1"],"PronType":["Art"],"Definite":["Def"],"NounT'
+            'ype":["Prop"]}}')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
+    #  # Parts of Speech Tagger : Defintion and it's usage
+    #  Parts of Speech Tagger, which is shortly known as POS Tagger is a software that automatically finds the word classes, when a text input is given. The text input can be a word, a sentence or a set of sentences. The word classes are the grammatical categories such as, Noun, Verb, Adverb etc. The category assigned to each word is called as a tag. A set of tags, each indicating a grammatical category is called, "tagsets". POS tagging is a mandatory pre-processing for most of the Natural Language Processing Applications such as, Information Extraction, Information Retreival systems and Summary generation systems. A POS Tagger is a language-dependent software as the grammar rules will differ for every language. For instance, a word ending with "ing" might indicate a "Verb" in English but this will not be applicable for other languages. 
+    #
+    #
+    ## Languages covered:
+    #
+    #| Languages          | ISO Code |
+    #|--------------------|----------|
+    #| Chinese            | zh       |
+    #| Dutch              | nl       |
+    #| English            | en       |
+    #| German             | de       |
+    #| Italian            | it       |
+    #| Lithuanian         | lt       |
+    #| Polish             | pl       |
+    #| Romanian           | ro       |
+    #| Tamil              | ta       |
+    # 
+    #
+    #
+    def test_get_postag(self):
+        # Parameters for the API call
+        body = BasicAPIs.deserialize_getPostag('{"input":{"text":"Let us begin the API development.","lang":"en"}}'
+            '')
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_postag(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('[{"originalText":"Let","postag":"VERB"},{"originalText":"us","postag'
+            '":"PRON"},{"originalText":"begin","postag":"VERB"},{"originalText":"'
+            'the","postag":"DET"},{"originalText":"API","postag":"PROPN"},{"orgi'
+            'nalText":"development","postag":"NOUN"},{"originalText":".","postag'
+            '":"PUNCT"}]')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
diff --git a/tests/controllers/test_enterprise_only_controller.py b/tests/controllers/test_enterprise_only_controller.py
new file mode 100644
index 0000000..2a5cf3d
--- /dev/null
+++ b/tests/controllers/test_enterprise_only_controller.py
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguageapi
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+import json
+import dateutil.parser
+
+from tests.controllers.controller_test_base import ControllerTestBase
+from tests.test_helper import TestHelper
+from tests.http_response_catcher import HttpResponseCatcher
+from firstlanguageapi.api_helper import APIHelper
+from firstlanguageapi.controllers.enterprise_only_controller import EnterpriseOnlyController
+from firstlanguageapi.models.api_question_request import ApiQuestionRequest
+
+
+class EnterpriseOnlyControllerTests(ControllerTestBase):
+
+    @classmethod
+    def setUpClass(cls):
+        super(EnterpriseOnlyControllerTests, cls).setUpClass()
+        cls.response_catcher = HttpResponseCatcher()
+        cls.controller = EnterpriseOnlyController(cls.config, cls.auth_managers, cls.response_catcher)
+
+    # # QA : Defintion and it's usage
+    #A Question Answering System retrieves the answer relevant to the question given by the user. A question answering system can be used for building a text based chatbots, search engines etc. Our question answering system  is mutilingual and supports 100 + languages. Please use ISO 639-2 2 digit language code  to get results. For example, use 'en' for English, 'ta' for Tamil, 'hi' for Hindi, 'fr' for French etc.
+    #
+    #For ISO code reference, please check the link https://www.loc.gov/standards/iso639-2/php/code_list.php
+    def test_get_qa_enterprise(self):
+        # Parameters for the API call
+        body = APIHelper.json_deserialize('{"input":{"question":"Who is father of Arya Stark?","lang":"en"}}', ApiQuestionRequest.from_dictionary)
+
+        # Perform the API call through the SDK function
+        result = self.controller.get_qa_enterprise(body)
+
+        # Test response code
+        self.assertEquals(self.response_catcher.response.status_code, 200)
+
+        # Test headers
+        expected_headers = {}
+        expected_headers['content-type'] = 'application/json'
+
+        self.assertTrue(TestHelper.match_headers(expected_headers, self.response_catcher.response.headers))
+
+        
+        # Test whether the captured response is as we expected
+        self.assertIsNotNone(result)
+        expected_body = APIHelper.json_deserialize('{"answer":"உப்பு, புளி, மிளகாய்"}')
+        received_body = APIHelper.json_deserialize(self.response_catcher.response.text)
+        self.assertTrue(TestHelper.match_body(expected_body, received_body))
+
diff --git a/tests/http_response_catcher.py b/tests/http_response_catcher.py
new file mode 100644
index 0000000..7c257f6
--- /dev/null
+++ b/tests/http_response_catcher.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+from firstlanguage_python.http.http_call_back import HttpCallBack
+
+class HttpResponseCatcher(HttpCallBack):
+
+    """A class used for catching the HttpResponse object from controllers.
+    
+    This class inherits HttpCallBack and implements the on_after_response
+    method to catch the HttpResponse object as returned by the HttpClient
+    after a request is executed.
+
+    """
+    def on_before_request(self, request):
+        pass
+
+    def on_after_response(self, response):
+        self.response = response
+
+
+
diff --git a/tests/test_helper.py b/tests/test_helper.py
new file mode 100644
index 0000000..6bbdc71
--- /dev/null
+++ b/tests/test_helper.py
@@ -0,0 +1,127 @@
+# -*- coding: utf-8 -*-
+
+"""
+firstlanguage
+
+This file was automatically generated by APIMATIC v3.0 (
+ https://www.apimatic.io ).
+"""
+
+import os, tempfile, requests
+
+class TestHelper(object):
+
+    """A Helper Class for various functions associated with API testing.
+    
+    This class contains static and class methods for operations that need to be
+    performed during API testing. All of the methods inside this class are
+    static or class methods, there is no need to ever initialise an instance of this
+    class.    
+
+    Attributes:
+        cache (Set): Class variable which stores hashes of file URLs so we don't 
+            download the same file twice in a test session.
+
+    """
+
+    cache = {}
+
+    @staticmethod
+    def match_headers(expected_headers, 
+                      received_headers, 
+                      allow_extra=True):
+        """Static method to compare the received headers with the expected headers.
+        
+        Args:
+            expected_headers (dict): A dictionary of expected headers (keys in lower case).
+            received_headers (dict): A dictionary of headers received.
+            allow_extra (Boolean, optional): A flag which determines if we
+                allow extra headers.
+        Returns:
+            Boolean: True if headers match, False otherwise.
+ 
+        """
+        if ((len(received_headers) < len(expected_headers)) or
+           ((allow_extra == False) and (len(expected_headers) != len(received_headers)))):
+            return False
+
+        received_headers = {k.lower(): v for k, v in received_headers.items()}
+        for e_key in expected_headers:
+            if e_key not in received_headers:
+                return False
+            if((expected_headers[e_key] != None) and
+               (expected_headers[e_key] != received_headers[e_key])):                
+                return False
+
+        return True
+
+    @staticmethod
+    def match_body(expected_body,
+                   received_body,
+                   check_values=False,
+                   check_order=False,
+                   check_count=False):
+        """Static method to compare the received body with the expected body.
+        
+        Args:
+            expected_body (dynamic): The expected body.
+            received_body (dynamic): The received body.
+            check_values (Boolean, optional): A flag which determines if we
+                check values in dictionaries.
+            check_order (Boolean, optional): A flag which determines if we
+                check the order of array elements.
+            check_count (Boolean, optional): A flag which determines if we
+                check the count of array elements.
+        Returns:
+            Boolean: True if bodies match, False otherwise.
+ 
+        """
+        if type(expected_body) == dict:
+            if type(received_body) != dict:
+                return False
+            for key in expected_body:
+                if key not in received_body:
+                    return False
+                if check_values or type(expected_body[key]) == dict:
+                    if TestHelper.match_body(expected_body[key], received_body[key], 
+                                             check_values, check_order, check_count) == False:
+                        return False
+        elif type(expected_body) == list: 
+            if type(received_body) != list:
+                return False
+            if check_count == True and (len(expected_body) != len(received_body)):
+                return False
+            else:
+                previous_matches = []
+                for i, expected_element in enumerate(expected_body):
+                    matches = [j for j, received_element 
+                               in enumerate(received_body) 
+                               if TestHelper.match_body(expected_element, received_element, 
+                                                        check_values, check_order, check_count)]
+                    if len(matches) == 0:
+                        return False
+                    if check_order == True:
+                        if i != 0 and all([all(y > x for y in previous_matches) for x in matches]):
+                            return False
+                        previous_matches = matches
+        elif expected_body != received_body:
+            return False            
+        return True
+
+    @classmethod
+    def get_file(cls, url):
+        """Class method which takes a URL, downloads the file (if not 
+        already downloaded for this test session) and returns a file object for 
+        the file in read-binary mode.
+        
+        Args:
+            url (string): The URL of the required file.
+        Returns:
+            FileObject: The file object of the required file (opened with "rb").
+ 
+        """
+        if url not in cls.cache:
+            cls.cache[url] = tempfile.NamedTemporaryFile()
+            cls.cache[url].write(requests.get(url).content)
+        cls.cache[url].seek(0)
+        return cls.cache[url]
\ No newline at end of file
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..1e5bd96
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,7 @@
+[tox]
+envlist = py35
+
+[testenv]
+commands = nosetests
+deps =
+    nose
