/*
Merlin

API Guide for accessing Merlin's model management, deployment, and serving functionalities

API version: 0.14.0
*/

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package client

import (
	"encoding/json"
)

// checks if the StandardTransformerSimulationResponse type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &StandardTransformerSimulationResponse{}

// StandardTransformerSimulationResponse struct for StandardTransformerSimulationResponse
type StandardTransformerSimulationResponse struct {
	Response         map[string]interface{} `json:"response,omitempty"`
	OperationTracing *OperationTracing      `json:"operation_tracing,omitempty"`
}

// NewStandardTransformerSimulationResponse instantiates a new StandardTransformerSimulationResponse 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 NewStandardTransformerSimulationResponse() *StandardTransformerSimulationResponse {
	this := StandardTransformerSimulationResponse{}
	return &this
}

// NewStandardTransformerSimulationResponseWithDefaults instantiates a new StandardTransformerSimulationResponse 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 NewStandardTransformerSimulationResponseWithDefaults() *StandardTransformerSimulationResponse {
	this := StandardTransformerSimulationResponse{}
	return &this
}

// GetResponse returns the Response field value if set, zero value otherwise.
func (o *StandardTransformerSimulationResponse) GetResponse() map[string]interface{} {
	if o == nil || IsNil(o.Response) {
		var ret map[string]interface{}
		return ret
	}
	return o.Response
}

// GetResponseOk returns a tuple with the Response field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StandardTransformerSimulationResponse) GetResponseOk() (map[string]interface{}, bool) {
	if o == nil || IsNil(o.Response) {
		return map[string]interface{}{}, false
	}
	return o.Response, true
}

// HasResponse returns a boolean if a field has been set.
func (o *StandardTransformerSimulationResponse) HasResponse() bool {
	if o != nil && !IsNil(o.Response) {
		return true
	}

	return false
}

// SetResponse gets a reference to the given map[string]interface{} and assigns it to the Response field.
func (o *StandardTransformerSimulationResponse) SetResponse(v map[string]interface{}) {
	o.Response = v
}

// GetOperationTracing returns the OperationTracing field value if set, zero value otherwise.
func (o *StandardTransformerSimulationResponse) GetOperationTracing() OperationTracing {
	if o == nil || IsNil(o.OperationTracing) {
		var ret OperationTracing
		return ret
	}
	return *o.OperationTracing
}

// GetOperationTracingOk returns a tuple with the OperationTracing field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StandardTransformerSimulationResponse) GetOperationTracingOk() (*OperationTracing, bool) {
	if o == nil || IsNil(o.OperationTracing) {
		return nil, false
	}
	return o.OperationTracing, true
}

// HasOperationTracing returns a boolean if a field has been set.
func (o *StandardTransformerSimulationResponse) HasOperationTracing() bool {
	if o != nil && !IsNil(o.OperationTracing) {
		return true
	}

	return false
}

// SetOperationTracing gets a reference to the given OperationTracing and assigns it to the OperationTracing field.
func (o *StandardTransformerSimulationResponse) SetOperationTracing(v OperationTracing) {
	o.OperationTracing = &v
}

func (o StandardTransformerSimulationResponse) MarshalJSON() ([]byte, error) {
	toSerialize, err := o.ToMap()
	if err != nil {
		return []byte{}, err
	}
	return json.Marshal(toSerialize)
}

func (o StandardTransformerSimulationResponse) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if !IsNil(o.Response) {
		toSerialize["response"] = o.Response
	}
	if !IsNil(o.OperationTracing) {
		toSerialize["operation_tracing"] = o.OperationTracing
	}
	return toSerialize, nil
}

type NullableStandardTransformerSimulationResponse struct {
	value *StandardTransformerSimulationResponse
	isSet bool
}

func (v NullableStandardTransformerSimulationResponse) Get() *StandardTransformerSimulationResponse {
	return v.value
}

func (v *NullableStandardTransformerSimulationResponse) Set(val *StandardTransformerSimulationResponse) {
	v.value = val
	v.isSet = true
}

func (v NullableStandardTransformerSimulationResponse) IsSet() bool {
	return v.isSet
}

func (v *NullableStandardTransformerSimulationResponse) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableStandardTransformerSimulationResponse(val *StandardTransformerSimulationResponse) *NullableStandardTransformerSimulationResponse {
	return &NullableStandardTransformerSimulationResponse{value: val, isSet: true}
}

func (v NullableStandardTransformerSimulationResponse) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableStandardTransformerSimulationResponse) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}
