# Type References

<details>

<summary>Response Difference</summary>

<pre class="language-markdown"><code class="lang-markdown">### responseDiff

<strong>Describes a single difference between expected response to the actual response.
</strong>
#### Properties

| Property Name          | Type                | Non-Optional | Description                               
|------------------------|---------------------|--------------|-------------------------------------------|      
| `differenceSection`    | `DifferenceSection` | Yes          | The category of difference.               
| `differenceType`       | `DifferenceType`    | Yes          | This exemplifies the kind of difference.  
| `evaluatedPath`        | `string[]`          | Yes          | Path of the key abstracting array indices.
| `newPath`              | `string[]`          | Yes          | Path of the key in the actual response.   
| `newValue`             | `ValueType`         | Yes          | Value in the actual response.
| `originalPath`         | `string[]`          | Yes          | Path of the key in original response difference.
| `originalValue`        | `ValueType`         | Yes          | Value in the original response.
| `requestIdentifier`    | `string`            | Yes          | A unique key to identify a request.
| `requestType`          | `RequestType`       | Yes          | Type that distinguishes the server used.
| `severityScore`        | `number`            | Yes          | Severity of the error.


#### Enum: DifferenceSection

Possible values for DifferenceSection.

- `NOISY_ERROR`: error due to a ever changing value in a field.
- `ERROR`: Indicates that there was an error processing the request.

#### Enum: DifferenceType

Possible values for DifferenceType

- `VALUE_MODIFIED`
- `DATA_TYPE_CHANGED` and more.

#### ValueType

Keys present in ValueType

- `htType`: string
- `langType`: string
- `value`: any 

#### RequestType

Possible values for RequestType

- `HTTP`
- `GRAPHQL`
- `GRPC`
- `KAFKA`
- `AMQP`
<strong>
</strong></code></pre>

</details>

<details>

<summary>Mock Difference</summary>

<pre class="language-markdown"><code class="lang-markdown">### mockDiff

<strong>Describes a single difference between recorded mock to the actual mock.
</strong>
#### Properties

| Property Name          | Type                | Non-Optional | Description                               
|------------------------|---------------------|--------------|-------------------------------------------|      
| `differenceSection`    | `DifferenceSection` | Yes          | The category of difference.               
| `differenceType`       | `DifferenceType`    | Yes          | This exemplifies the kind of difference.  
| `evaluatedPath`        | `string[]`          | Yes          | Path of the key abstracting array indices.
| `newPath`              | `string[]`          | Yes          | Path of the key in the actual response.   
| `newValue`             | `ValueType`         | Yes          | Value in the actual response.
| `originalPath`         | `string[]`          | Yes          | Path of the key in original response difference.
| `originalValue`        | `ValueType`         | Yes          | Value in the original response.
| `mockIdentifier`       | `string`            | Yes          | A unique key to identify a mock.
| `originalMockId`       | `bigint`            | Yes          | Mock Id corresponding to the recorded mock.
| `severityScore`        | `number`            | Yes          | Severity of the error.


#### Enum: DifferenceSection

Possible values for DifferenceSection.

- `NOISY_ERROR`: error due to a ever changing value in a field.
- `ERROR`: Indicates that there was an error processing the request.

#### Enum: DifferenceType

Possible values for DifferenceType

- `VALUE_MODIFIED`
- `DATA_TYPE_CHANGED` and more.

#### ValueType

Keys present in ValueType

- `htType`: string
- `langType`: string
- `value`: any 
<strong>
</strong></code></pre>

</details>

<details>

<summary>Current Mock</summary>

```markdown
### currentMock

Original mock recorded which now has a difference with the replayed mock.

#### Properties

| Property Name          | Type                | Non-Optional | Description                               
|------------------------|---------------------|--------------|-------------------------------------------|
| `submoduleName`        | `string`            | Yes          | Submodule name of the mock.        
| `moduleName`           | `string`            | Yes          | Module name of the mock.               
| `id`                   | `bigint`            | Yes          | Recorded mock id.
| `OutputStatus`         | `OutputStatus`      | Yes          | Status of mock. 
| `readableInput`        | `object`            | Yes          | Mock input.
| `readableOutput`       | `object`            | Yes          | Mock output.   
| `err`                  | `object`            | Yes          | Mock error.

#### Enum: OutputStatus

Possible values for OutputStatus.

- `ERROR`
- `OKAY`
```

</details>

#### Request Object

{% tabs %}
{% tab title="HTTP" %}

```markdown
### requestObj

Describes the components of a recorded http request.

#### Properties

| Property Name          | Type                | Non-Opitonal | Description                               
|------------------------|---------------------|--------------|-------------------------------------------|
| `i_bodyType`           | `BodyType`          | Yes          | Body type of the http request.        
| `i_clusterPath`        | `string`            | Yes          | Cluster path for the http request.               
| `i_headers`            | `object`            | Yes          | Headers for the request.  
| `i_method     `        | `string`            | Yes          | Verb of the request.
| `i_path`               | `string`            | Yes          | Actual path of the request.   
| `i_query`              | `object`            | Yes          | Query of the request.
| `id`                   | `bigint`            | Yes          | Id of the recorded request.
| `i_host`               | `string`            | Yes          | Host of the request.
| `i_jsonBody`           | `object`            | Yes          | Request body.
| `requestType`          | `RequestType`       | Yes          | Server type.
| `o_jsonBody`           | `string`            | Yes          | Response body.
| `o_headers`            | `object`            | Yes          | Response headers.
| `o_statusCode`         | `number`            | Yes          | Response status code.
| `OutputStatus`         | `OutputStatus`      | Yes          | Status of the request.

#### Enum: BodyType

Possible values for BodyType.

- `JSON`
- `MULTIPART`
- `RAW` and more.

#### RequestType

Possible values for RequestType

- `HTTP`
- `GRAPHQL`
- `GRPC`
- `KAFKA`
- `AMQP`

#### Enum: OutputStatus

Possible values for OutputStatus.

- `ERROR`
- `OKAY`
```

{% endtab %}

{% tab title="GRAPHQL" %}

```markdown
### requestObj

Describes the components of a recorded graphql request.

#### Properties

| Property Name          | Type                | Non-Optional | Description                               
|------------------------|---------------------|--------------|-------------------------------------------|
| `i_gqlOpType`          | `HtGraphqlOpType`   | Yes          | Graphql request type.        
| `i_gqlHeaders`         | `Object`            | Yes          | Headers for the request.               
| `i_gqlQuery`           | `string`            | Yes          | Query for the request.  
| `im_gqlOpName`         | `string`            | Yes          | Graphql Operation name.
| `i_gqlVars`            | `object`            | Yes          | Variables for the graphql request.   
| `i_gqlResolverChain`   | `string[]`          | Yes          | Resolvers encountered in the response.
| `id`                   | `bigint`            | Yes          | Id of the recorded request.
| `o_data`               | `object`            | Yes          | Response data.
| `o_error`              | `object`            | Yes          | Response error.
| `requestType`          | `RequestType`       | Yes          | Server type.
| `OutputStatus`         | `OutputStatus`      | Yes          | Status of the request.

#### Enum: HtGraphqlOpType

Possible values for HtGraphqlOpType.

- `QUERY`
- `MUTATION`
- `SUBSCRIPTION`

#### RequestType

Possible values for RequestType

- `HTTP`
- `GRAPHQL`
- `GRPC`
- `KAFKA`
- `AMQP`

#### Enum: OutputStatus

Possible values for OutputStatus.

- `ERROR`
- `OKAY`
```

{% endtab %}

{% tab title="GRPC" %}

```markdown
### requestObj

Describes the components of a recorded GRPC request.

#### Properties

| Property Name          | Type                | Non-Optional | Description                               
|------------------------|---------------------|--------------|-------------------------------------------|
| `i_method`             | `string`            | Yes          | Request method.        
| `i_service`            | `string`            | Yes          | Name of the service.               
| `i_metaData`           | `object`            | Yes          | Request meta data.  
| `i_body`               | `object`            | No           | Request body.
| `o_metaData`           | `object`            | Yes          | Response meta data.   
| `o_error`              | `object`            | No           | Response error.
| `id`                   | `bigint`            | Yes          | Id of the recorded request.
| `o_status`             | `object`            | Yes          | Response status.
| `o_body`               | `object`            | No           | Response body.
| `requestType`          | `RequestType`       | Yes          | Server type.
| `OutputStatus`         | `OutputStatus`      | Yes          | Status of the request.

#### RequestType

Possible values for RequestType

- `HTTP`
- `GRAPHQL`
- `GRPC`
- `KAFKA`
- `AMQP`

#### Enum: OutputStatus

Possible values for OutputStatus.

- `ERROR`
- `OKAY`
```

{% endtab %}

{% tab title="KAFKA" %}

```markdown
### requestObj

Describes the components of a recorded kafka request.

#### Properties

| Property Name          | Type                | Non-Optional | Description                               
|------------------------|---------------------|--------------|-------------------------------------------|
| `i_groupId`            | `string`            | Yes          | Kafka group id.        
| `i_highWaterMark`      | `string`            | No           | Last message offset.               
| `i_topic`              | `string`            | Yes          | Topic name.  
| `i_jsonValue`          | `object`            | No           | Request body value.
| `i_headers`            | `object`            | No           | Request headers.   
| `i_offset`             | `string`            | Yes          | Current message offset.
| `id`                   | `bigint`            | Yes          | Id of the recorded request.
| `i_timestamp`          | `string`            | Yes          | Timestamp.
| `im_valueString`       | `string`            | No           | Message stringified.
|`im_valueStringEncoding`| `HtRawEncoding`     | No           | Encoding for the value string.
| `im_attributes`        | `int`               | Yes          | Config.
| `im_size`              | `int`               | No           | Message size.
| `im_partition`         | `int`               | Yes          | Partition name.
| `requestType`          | `RequestType`       | Yes          | Server type.
| `OutputStatus`         | `OutputStatus`      | Yes          | Status of the request.

#### Enum: HtRawEncoding

Possible values for HtRawEncoding.

- `NONE`
- `UTF8`
- `BASE64`

#### RequestType

Possible values for RequestType

- `HTTP`
- `GRAPHQL`
- `GRPC`
- `KAFKA`
- `AMQP`

#### Enum: OutputStatus

Possible values for OutputStatus.

- `ERROR`
- `OKAY`

```

{% endtab %}

{% tab title="AMQP" %}

```markdown
### requestObj

Describes the components of a recorded AMQP request.

#### Properties

| Property Name          | Type                | Non-Optional | Description                               
|------------------------|---------------------|--------------|-------------------------------------------|
| `i_queue`              | `string`            | Yes          | Queue name.        
| `i_msg`                | `object`            | Yes          | Message sent in the request.               
| `i_messageType`        | `HtAmqpMessageType` | Yes          | Message Type.  
| `i_options`            | `object`            | No           | Options for the request.
|`im_ContentBufferBase64`| `string`            | No           | Content buffer encoded in base64.   
| `OutputStatus`         | `OutputStatus`      | Yes          | Status of the request.
| `id`                   | `bigint`            | Yes          | Id of the recorded request.
| `requestType`          | `RequestType`       | Yes          | Server type.

#### Enum: OutputStatus

Possible values for OutputStatus.

- `ERROR`
- `OKAY`

#### RequestType

Possible values for RequestType

- `HTTP`
- `GRAPHQL`
- `GRPC`
- `KAFKA`
- `AMQP`

```

{% endtab %}
{% endtabs %}
