diff --git a/.idea/runConfigurations/Generate_Code.xml b/.idea/runConfigurations/Generate_Code.xml
index 63dbbb6..b1c6ea1 100644
--- a/.idea/runConfigurations/Generate_Code.xml
+++ b/.idea/runConfigurations/Generate_Code.xml
@@ -2,24 +2,18 @@
-
-
+
-
-
-
-
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 35eb1dd..7ddfc9e 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,5 +1,11 @@
+
+
+
+
+
+
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 1e07d2a..2478416 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -4,16 +4,20 @@
README.md
api/openapi.yaml
api_user.go
+api_user_message.go
api_user_source.go
client.go
configuration.go
+docs/TaskMessage.md
docs/TaskResponse.md
docs/TaskStartTask.md
docs/UserApi.md
+docs/UserMessageApi.md
docs/UserSourceApi.md
git_push.sh
go.mod
go.sum
+model_task_message.go
model_task_response.go
model_task_start_task.go
response.go
diff --git a/README.md b/README.md
index 1f8a5b9..bf781f8 100644
--- a/README.md
+++ b/README.md
@@ -81,6 +81,7 @@ Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*UserApi* | [**UserTaskPost**](docs/UserApi.md#usertaskpost) | **Post** /user/task | Start scraping all user sources
*UserApi* | [**UserTaskUserIdGet**](docs/UserApi.md#usertaskuseridget) | **Get** /user/task/{user_id} | Gets all tasks of a user
+*UserMessageApi* | [**PlugMessagesPlugIdentifierUserSourceIdGet**](docs/UserMessageApi.md#plugmessagesplugidentifierusersourceidget) | **Get** /plug/messages/{plug_identifier}/{user_source_id} | Get all Messages from a user
*UserSourceApi* | [**PlugTaskPlugIdentifierPost**](docs/UserSourceApi.md#plugtaskplugidentifierpost) | **Post** /plug/task/{plug_identifier} | Start a plug task
*UserSourceApi* | [**PlugTaskPlugIdentifierTaskIdDelete**](docs/UserSourceApi.md#plugtaskplugidentifiertaskiddelete) | **Delete** /plug/task/{plug_identifier}/{task_id} | Stop a plug task
*UserSourceApi* | [**PlugTaskPlugIdentifierTaskIdGet**](docs/UserSourceApi.md#plugtaskplugidentifiertaskidget) | **Get** /plug/task/{plug_identifier}/{task_id} | Gets the status of a plug task
@@ -88,6 +89,7 @@ Class | Method | HTTP request | Description
## Documentation For Models
+ - [TaskMessage](docs/TaskMessage.md)
- [TaskResponse](docs/TaskResponse.md)
- [TaskStartTask](docs/TaskStartTask.md)
diff --git a/api/openapi.yaml b/api/openapi.yaml
index 633eda9..34399ff 100644
--- a/api/openapi.yaml
+++ b/api/openapi.yaml
@@ -11,6 +11,40 @@ info:
servers:
- url: /api/v1
paths:
+ /plug/messages/{plug_identifier}/{user_source_id}:
+ get:
+ description: Retrieves all user messages from a specific plug
+ parameters:
+ - description: User Source ID
+ in: path
+ name: user_source_id
+ required: true
+ schema:
+ type: string
+ - description: Plug Identifier
+ in: path
+ name: plug_identifier
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ '*/*':
+ schema:
+ items:
+ $ref: '#/components/schemas/task.Message'
+ type: array
+ description: OK
+ "400":
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/gin.H'
+ description: Bad Request
+ summary: Get all Messages from a user
+ tags:
+ - User Message
/plug/task/{plug_identifier}:
post:
description: Starts a task for the specified plug
@@ -165,6 +199,22 @@ components:
additionalProperties:
type: object
type: object
+ task.Message:
+ example:
+ user_source_id: user_source_id
+ created_at: created_at
+ body: body
+ title: title
+ properties:
+ body:
+ type: string
+ created_at:
+ type: string
+ title:
+ type: string
+ user_source_id:
+ type: string
+ type: object
task.Response:
example:
plug_task_id: plug_task_id
diff --git a/api_user_message.go b/api_user_message.go
new file mode 100644
index 0000000..9539380
--- /dev/null
+++ b/api_user_message.go
@@ -0,0 +1,141 @@
+/*
+Anthrove Orchestrator API
+
+This service handles the communication between the manager and the plugs
+
+API version: 1.0
+Contact: support@anthrove.art
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package openapi
+
+import (
+ "bytes"
+ "context"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+// UserMessageApiService UserMessageApi service
+type UserMessageApiService service
+
+type ApiPlugMessagesPlugIdentifierUserSourceIdGetRequest struct {
+ ctx context.Context
+ ApiService *UserMessageApiService
+ userSourceId string
+ plugIdentifier string
+}
+
+func (r ApiPlugMessagesPlugIdentifierUserSourceIdGetRequest) Execute() ([]TaskMessage, *http.Response, error) {
+ return r.ApiService.PlugMessagesPlugIdentifierUserSourceIdGetExecute(r)
+}
+
+/*
+PlugMessagesPlugIdentifierUserSourceIdGet Get all Messages from a user
+
+Retrieves all user messages from a specific plug
+
+ @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
+ @param userSourceId User Source ID
+ @param plugIdentifier Plug Identifier
+ @return ApiPlugMessagesPlugIdentifierUserSourceIdGetRequest
+*/
+func (a *UserMessageApiService) PlugMessagesPlugIdentifierUserSourceIdGet(ctx context.Context, userSourceId string, plugIdentifier string) ApiPlugMessagesPlugIdentifierUserSourceIdGetRequest {
+ return ApiPlugMessagesPlugIdentifierUserSourceIdGetRequest{
+ ApiService: a,
+ ctx: ctx,
+ userSourceId: userSourceId,
+ plugIdentifier: plugIdentifier,
+ }
+}
+
+// Execute executes the request
+//
+// @return []TaskMessage
+func (a *UserMessageApiService) PlugMessagesPlugIdentifierUserSourceIdGetExecute(r ApiPlugMessagesPlugIdentifierUserSourceIdGetRequest) ([]TaskMessage, *http.Response, error) {
+ var (
+ localVarHTTPMethod = http.MethodGet
+ localVarPostBody interface{}
+ formFiles []formFile
+ localVarReturnValue []TaskMessage
+ )
+
+ localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "UserMessageApiService.PlugMessagesPlugIdentifierUserSourceIdGet")
+ if err != nil {
+ return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
+ }
+
+ localVarPath := localBasePath + "/plug/messages/{plug_identifier}/{user_source_id}"
+ localVarPath = strings.Replace(localVarPath, "{"+"user_source_id"+"}", url.PathEscape(parameterToString(r.userSourceId, "")), -1)
+ localVarPath = strings.Replace(localVarPath, "{"+"plug_identifier"+"}", url.PathEscape(parameterToString(r.plugIdentifier, "")), -1)
+
+ localVarHeaderParams := make(map[string]string)
+ localVarQueryParams := url.Values{}
+ localVarFormParams := url.Values{}
+
+ // to determine the Content-Type header
+ localVarHTTPContentTypes := []string{}
+
+ // set Content-Type header
+ localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
+ if localVarHTTPContentType != "" {
+ localVarHeaderParams["Content-Type"] = localVarHTTPContentType
+ }
+
+ // to determine the Accept header
+ localVarHTTPHeaderAccepts := []string{"*/*"}
+
+ // set Accept header
+ localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
+ if localVarHTTPHeaderAccept != "" {
+ localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
+ }
+ req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
+ if err != nil {
+ return localVarReturnValue, nil, err
+ }
+
+ localVarHTTPResponse, err := a.client.callAPI(req)
+ if err != nil || localVarHTTPResponse == nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
+ localVarHTTPResponse.Body.Close()
+ localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
+ if err != nil {
+ return localVarReturnValue, localVarHTTPResponse, err
+ }
+
+ if localVarHTTPResponse.StatusCode >= 300 {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: localVarHTTPResponse.Status,
+ }
+ if localVarHTTPResponse.StatusCode == 400 {
+ var v map[string]map[string]interface{}
+ err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr.error = err.Error()
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+ newErr.model = v
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
+ if err != nil {
+ newErr := &GenericOpenAPIError{
+ body: localVarBody,
+ error: err.Error(),
+ }
+ return localVarReturnValue, localVarHTTPResponse, newErr
+ }
+
+ return localVarReturnValue, localVarHTTPResponse, nil
+}
diff --git a/client.go b/client.go
index e1435f7..f37b0b9 100644
--- a/client.go
+++ b/client.go
@@ -52,6 +52,8 @@ type APIClient struct {
UserApi *UserApiService
+ UserMessageApi *UserMessageApiService
+
UserSourceApi *UserSourceApiService
}
@@ -72,6 +74,7 @@ func NewAPIClient(cfg *Configuration) *APIClient {
// API Services
c.UserApi = (*UserApiService)(&c.common)
+ c.UserMessageApi = (*UserMessageApiService)(&c.common)
c.UserSourceApi = (*UserSourceApiService)(&c.common)
return c
diff --git a/docs/TaskMessage.md b/docs/TaskMessage.md
new file mode 100644
index 0000000..d7f6e83
--- /dev/null
+++ b/docs/TaskMessage.md
@@ -0,0 +1,134 @@
+# TaskMessage
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Body** | Pointer to **string** | | [optional]
+**CreatedAt** | Pointer to **string** | | [optional]
+**Title** | Pointer to **string** | | [optional]
+**UserSourceId** | Pointer to **string** | | [optional]
+
+## Methods
+
+### NewTaskMessage
+
+`func NewTaskMessage() *TaskMessage`
+
+NewTaskMessage instantiates a new TaskMessage object
+This constructor will assign default values to properties that have it defined,
+and makes sure properties required by API are set, but the set of arguments
+will change when the set of required properties is changed
+
+### NewTaskMessageWithDefaults
+
+`func NewTaskMessageWithDefaults() *TaskMessage`
+
+NewTaskMessageWithDefaults instantiates a new TaskMessage object
+This constructor will only assign default values to properties that have it defined,
+but it doesn't guarantee that properties required by API are set
+
+### GetBody
+
+`func (o *TaskMessage) GetBody() string`
+
+GetBody returns the Body field if non-nil, zero value otherwise.
+
+### GetBodyOk
+
+`func (o *TaskMessage) GetBodyOk() (*string, bool)`
+
+GetBodyOk returns a tuple with the Body field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetBody
+
+`func (o *TaskMessage) SetBody(v string)`
+
+SetBody sets Body field to given value.
+
+### HasBody
+
+`func (o *TaskMessage) HasBody() bool`
+
+HasBody returns a boolean if a field has been set.
+
+### GetCreatedAt
+
+`func (o *TaskMessage) GetCreatedAt() string`
+
+GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
+
+### GetCreatedAtOk
+
+`func (o *TaskMessage) GetCreatedAtOk() (*string, bool)`
+
+GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCreatedAt
+
+`func (o *TaskMessage) SetCreatedAt(v string)`
+
+SetCreatedAt sets CreatedAt field to given value.
+
+### HasCreatedAt
+
+`func (o *TaskMessage) HasCreatedAt() bool`
+
+HasCreatedAt returns a boolean if a field has been set.
+
+### GetTitle
+
+`func (o *TaskMessage) GetTitle() string`
+
+GetTitle returns the Title field if non-nil, zero value otherwise.
+
+### GetTitleOk
+
+`func (o *TaskMessage) GetTitleOk() (*string, bool)`
+
+GetTitleOk returns a tuple with the Title field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetTitle
+
+`func (o *TaskMessage) SetTitle(v string)`
+
+SetTitle sets Title field to given value.
+
+### HasTitle
+
+`func (o *TaskMessage) HasTitle() bool`
+
+HasTitle returns a boolean if a field has been set.
+
+### GetUserSourceId
+
+`func (o *TaskMessage) GetUserSourceId() string`
+
+GetUserSourceId returns the UserSourceId field if non-nil, zero value otherwise.
+
+### GetUserSourceIdOk
+
+`func (o *TaskMessage) GetUserSourceIdOk() (*string, bool)`
+
+GetUserSourceIdOk returns a tuple with the UserSourceId field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetUserSourceId
+
+`func (o *TaskMessage) SetUserSourceId(v string)`
+
+SetUserSourceId sets UserSourceId field to given value.
+
+### HasUserSourceId
+
+`func (o *TaskMessage) HasUserSourceId() bool`
+
+HasUserSourceId returns a boolean if a field has been set.
+
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/UserMessageApi.md b/docs/UserMessageApi.md
new file mode 100644
index 0000000..b19b92c
--- /dev/null
+++ b/docs/UserMessageApi.md
@@ -0,0 +1,82 @@
+# \UserMessageApi
+
+All URIs are relative to */api/v1*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**PlugMessagesPlugIdentifierUserSourceIdGet**](UserMessageApi.md#PlugMessagesPlugIdentifierUserSourceIdGet) | **Get** /plug/messages/{plug_identifier}/{user_source_id} | Get all Messages from a user
+
+
+
+## PlugMessagesPlugIdentifierUserSourceIdGet
+
+> []TaskMessage PlugMessagesPlugIdentifierUserSourceIdGet(ctx, userSourceId, plugIdentifier).Execute()
+
+Get all Messages from a user
+
+
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+ openapiclient "./openapi"
+)
+
+func main() {
+ userSourceId := "userSourceId_example" // string | User Source ID
+ plugIdentifier := "plugIdentifier_example" // string | Plug Identifier
+
+ configuration := openapiclient.NewConfiguration()
+ apiClient := openapiclient.NewAPIClient(configuration)
+ resp, r, err := apiClient.UserMessageApi.PlugMessagesPlugIdentifierUserSourceIdGet(context.Background(), userSourceId, plugIdentifier).Execute()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error when calling `UserMessageApi.PlugMessagesPlugIdentifierUserSourceIdGet``: %v\n", err)
+ fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
+ }
+ // response from `PlugMessagesPlugIdentifierUserSourceIdGet`: []TaskMessage
+ fmt.Fprintf(os.Stdout, "Response from `UserMessageApi.PlugMessagesPlugIdentifierUserSourceIdGet`: %v\n", resp)
+}
+```
+
+### Path Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
+**userSourceId** | **string** | User Source ID |
+**plugIdentifier** | **string** | Plug Identifier |
+
+### Other Parameters
+
+Other parameters are passed through a pointer to a apiPlugMessagesPlugIdentifierUserSourceIdGetRequest struct via the builder pattern
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+
+
+
+### Return type
+
+[**[]TaskMessage**](TaskMessage.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
+[[Back to Model list]](../README.md#documentation-for-models)
+[[Back to README]](../README.md)
+
diff --git a/model_task_message.go b/model_task_message.go
new file mode 100644
index 0000000..5a8f664
--- /dev/null
+++ b/model_task_message.go
@@ -0,0 +1,222 @@
+/*
+Anthrove Orchestrator API
+
+This service handles the communication between the manager and the plugs
+
+API version: 1.0
+Contact: support@anthrove.art
+*/
+
+// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
+
+package openapi
+
+import (
+ "encoding/json"
+)
+
+// TaskMessage struct for TaskMessage
+type TaskMessage struct {
+ Body *string `json:"body,omitempty"`
+ CreatedAt *string `json:"created_at,omitempty"`
+ Title *string `json:"title,omitempty"`
+ UserSourceId *string `json:"user_source_id,omitempty"`
+}
+
+// NewTaskMessage instantiates a new TaskMessage object
+// This constructor will assign default values to properties that have it defined,
+// and makes sure properties required by API are set, but the set of arguments
+// will change when the set of required properties is changed
+func NewTaskMessage() *TaskMessage {
+ this := TaskMessage{}
+ return &this
+}
+
+// NewTaskMessageWithDefaults instantiates a new TaskMessage object
+// This constructor will only assign default values to properties that have it defined,
+// but it doesn't guarantee that properties required by API are set
+func NewTaskMessageWithDefaults() *TaskMessage {
+ this := TaskMessage{}
+ return &this
+}
+
+// GetBody returns the Body field value if set, zero value otherwise.
+func (o *TaskMessage) GetBody() string {
+ if o == nil || o.Body == nil {
+ var ret string
+ return ret
+ }
+ return *o.Body
+}
+
+// GetBodyOk returns a tuple with the Body field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *TaskMessage) GetBodyOk() (*string, bool) {
+ if o == nil || o.Body == nil {
+ return nil, false
+ }
+ return o.Body, true
+}
+
+// HasBody returns a boolean if a field has been set.
+func (o *TaskMessage) HasBody() bool {
+ if o != nil && o.Body != nil {
+ return true
+ }
+
+ return false
+}
+
+// SetBody gets a reference to the given string and assigns it to the Body field.
+func (o *TaskMessage) SetBody(v string) {
+ o.Body = &v
+}
+
+// GetCreatedAt returns the CreatedAt field value if set, zero value otherwise.
+func (o *TaskMessage) GetCreatedAt() string {
+ if o == nil || o.CreatedAt == nil {
+ var ret string
+ return ret
+ }
+ return *o.CreatedAt
+}
+
+// GetCreatedAtOk returns a tuple with the CreatedAt field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *TaskMessage) GetCreatedAtOk() (*string, bool) {
+ if o == nil || o.CreatedAt == nil {
+ return nil, false
+ }
+ return o.CreatedAt, true
+}
+
+// HasCreatedAt returns a boolean if a field has been set.
+func (o *TaskMessage) HasCreatedAt() bool {
+ if o != nil && o.CreatedAt != nil {
+ return true
+ }
+
+ return false
+}
+
+// SetCreatedAt gets a reference to the given string and assigns it to the CreatedAt field.
+func (o *TaskMessage) SetCreatedAt(v string) {
+ o.CreatedAt = &v
+}
+
+// GetTitle returns the Title field value if set, zero value otherwise.
+func (o *TaskMessage) GetTitle() string {
+ if o == nil || o.Title == nil {
+ var ret string
+ return ret
+ }
+ return *o.Title
+}
+
+// GetTitleOk returns a tuple with the Title field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *TaskMessage) GetTitleOk() (*string, bool) {
+ if o == nil || o.Title == nil {
+ return nil, false
+ }
+ return o.Title, true
+}
+
+// HasTitle returns a boolean if a field has been set.
+func (o *TaskMessage) HasTitle() bool {
+ if o != nil && o.Title != nil {
+ return true
+ }
+
+ return false
+}
+
+// SetTitle gets a reference to the given string and assigns it to the Title field.
+func (o *TaskMessage) SetTitle(v string) {
+ o.Title = &v
+}
+
+// GetUserSourceId returns the UserSourceId field value if set, zero value otherwise.
+func (o *TaskMessage) GetUserSourceId() string {
+ if o == nil || o.UserSourceId == nil {
+ var ret string
+ return ret
+ }
+ return *o.UserSourceId
+}
+
+// GetUserSourceIdOk returns a tuple with the UserSourceId field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *TaskMessage) GetUserSourceIdOk() (*string, bool) {
+ if o == nil || o.UserSourceId == nil {
+ return nil, false
+ }
+ return o.UserSourceId, true
+}
+
+// HasUserSourceId returns a boolean if a field has been set.
+func (o *TaskMessage) HasUserSourceId() bool {
+ if o != nil && o.UserSourceId != nil {
+ return true
+ }
+
+ return false
+}
+
+// SetUserSourceId gets a reference to the given string and assigns it to the UserSourceId field.
+func (o *TaskMessage) SetUserSourceId(v string) {
+ o.UserSourceId = &v
+}
+
+func (o TaskMessage) MarshalJSON() ([]byte, error) {
+ toSerialize := map[string]interface{}{}
+ if o.Body != nil {
+ toSerialize["body"] = o.Body
+ }
+ if o.CreatedAt != nil {
+ toSerialize["created_at"] = o.CreatedAt
+ }
+ if o.Title != nil {
+ toSerialize["title"] = o.Title
+ }
+ if o.UserSourceId != nil {
+ toSerialize["user_source_id"] = o.UserSourceId
+ }
+ return json.Marshal(toSerialize)
+}
+
+type NullableTaskMessage struct {
+ value *TaskMessage
+ isSet bool
+}
+
+func (v NullableTaskMessage) Get() *TaskMessage {
+ return v.value
+}
+
+func (v *NullableTaskMessage) Set(val *TaskMessage) {
+ v.value = val
+ v.isSet = true
+}
+
+func (v NullableTaskMessage) IsSet() bool {
+ return v.isSet
+}
+
+func (v *NullableTaskMessage) Unset() {
+ v.value = nil
+ v.isSet = false
+}
+
+func NewNullableTaskMessage(val *TaskMessage) *NullableTaskMessage {
+ return &NullableTaskMessage{value: val, isSet: true}
+}
+
+func (v NullableTaskMessage) MarshalJSON() ([]byte, error) {
+ return json.Marshal(v.value)
+}
+
+func (v *NullableTaskMessage) UnmarshalJSON(src []byte) error {
+ v.isSet = true
+ return json.Unmarshal(src, &v.value)
+}