/*
Hindsight HTTP API

HTTP API for Hindsight

API version: 0.5.3
*/

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

package hindsight

import (
	"encoding/json"
)

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

// BankTemplateConfig Bank configuration fields within a template manifest.  Only includes configurable (per-bank) fields. Credential fields (API keys, base URLs) are intentionally excluded for security.
type BankTemplateConfig struct {
	ReflectMission NullableString `json:"reflect_mission,omitempty"`
	RetainMission NullableString `json:"retain_mission,omitempty"`
	RetainExtractionMode NullableString `json:"retain_extraction_mode,omitempty"`
	RetainCustomInstructions NullableString `json:"retain_custom_instructions,omitempty"`
	RetainChunkSize NullableInt32 `json:"retain_chunk_size,omitempty"`
	EnableObservations NullableBool `json:"enable_observations,omitempty"`
	ObservationsMission NullableString `json:"observations_mission,omitempty"`
	DispositionSkepticism NullableInt32 `json:"disposition_skepticism,omitempty"`
	DispositionLiteralism NullableInt32 `json:"disposition_literalism,omitempty"`
	DispositionEmpathy NullableInt32 `json:"disposition_empathy,omitempty"`
	EntityLabels []map[string]interface{} `json:"entity_labels,omitempty"`
	EntitiesAllowFreeForm NullableBool `json:"entities_allow_free_form,omitempty"`
	RetainDefaultStrategy NullableString `json:"retain_default_strategy,omitempty"`
	RetainStrategies map[string]interface{} `json:"retain_strategies,omitempty"`
	RetainChunkBatchSize NullableInt32 `json:"retain_chunk_batch_size,omitempty"`
	McpEnabledTools []string `json:"mcp_enabled_tools,omitempty"`
	ConsolidationLlmBatchSize NullableInt32 `json:"consolidation_llm_batch_size,omitempty"`
	ConsolidationSourceFactsMaxTokens NullableInt32 `json:"consolidation_source_facts_max_tokens,omitempty"`
	ConsolidationSourceFactsMaxTokensPerObservation NullableInt32 `json:"consolidation_source_facts_max_tokens_per_observation,omitempty"`
	MaxObservationsPerScope NullableInt32 `json:"max_observations_per_scope,omitempty"`
	ReflectSourceFactsMaxTokens NullableInt32 `json:"reflect_source_facts_max_tokens,omitempty"`
	LlmGeminiSafetySettings []interface{} `json:"llm_gemini_safety_settings,omitempty"`
	RecallBudgetFunction NullableString `json:"recall_budget_function,omitempty"`
	RecallBudgetFixedLow NullableInt32 `json:"recall_budget_fixed_low,omitempty"`
	RecallBudgetFixedMid NullableInt32 `json:"recall_budget_fixed_mid,omitempty"`
	RecallBudgetFixedHigh NullableInt32 `json:"recall_budget_fixed_high,omitempty"`
	RecallBudgetAdaptiveLow NullableFloat32 `json:"recall_budget_adaptive_low,omitempty"`
	RecallBudgetAdaptiveMid NullableFloat32 `json:"recall_budget_adaptive_mid,omitempty"`
	RecallBudgetAdaptiveHigh NullableFloat32 `json:"recall_budget_adaptive_high,omitempty"`
	RecallBudgetMin NullableInt32 `json:"recall_budget_min,omitempty"`
	RecallBudgetMax NullableInt32 `json:"recall_budget_max,omitempty"`
}

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

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

// GetReflectMission returns the ReflectMission field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetReflectMission() string {
	if o == nil || IsNil(o.ReflectMission.Get()) {
		var ret string
		return ret
	}
	return *o.ReflectMission.Get()
}

// GetReflectMissionOk returns a tuple with the ReflectMission field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetReflectMissionOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.ReflectMission.Get(), o.ReflectMission.IsSet()
}

// HasReflectMission returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasReflectMission() bool {
	if o != nil && o.ReflectMission.IsSet() {
		return true
	}

	return false
}

// SetReflectMission gets a reference to the given NullableString and assigns it to the ReflectMission field.
func (o *BankTemplateConfig) SetReflectMission(v string) {
	o.ReflectMission.Set(&v)
}
// SetReflectMissionNil sets the value for ReflectMission to be an explicit nil
func (o *BankTemplateConfig) SetReflectMissionNil() {
	o.ReflectMission.Set(nil)
}

// UnsetReflectMission ensures that no value is present for ReflectMission, not even an explicit nil
func (o *BankTemplateConfig) UnsetReflectMission() {
	o.ReflectMission.Unset()
}

// GetRetainMission returns the RetainMission field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRetainMission() string {
	if o == nil || IsNil(o.RetainMission.Get()) {
		var ret string
		return ret
	}
	return *o.RetainMission.Get()
}

// GetRetainMissionOk returns a tuple with the RetainMission field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRetainMissionOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.RetainMission.Get(), o.RetainMission.IsSet()
}

// HasRetainMission returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRetainMission() bool {
	if o != nil && o.RetainMission.IsSet() {
		return true
	}

	return false
}

// SetRetainMission gets a reference to the given NullableString and assigns it to the RetainMission field.
func (o *BankTemplateConfig) SetRetainMission(v string) {
	o.RetainMission.Set(&v)
}
// SetRetainMissionNil sets the value for RetainMission to be an explicit nil
func (o *BankTemplateConfig) SetRetainMissionNil() {
	o.RetainMission.Set(nil)
}

// UnsetRetainMission ensures that no value is present for RetainMission, not even an explicit nil
func (o *BankTemplateConfig) UnsetRetainMission() {
	o.RetainMission.Unset()
}

// GetRetainExtractionMode returns the RetainExtractionMode field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRetainExtractionMode() string {
	if o == nil || IsNil(o.RetainExtractionMode.Get()) {
		var ret string
		return ret
	}
	return *o.RetainExtractionMode.Get()
}

// GetRetainExtractionModeOk returns a tuple with the RetainExtractionMode field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRetainExtractionModeOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.RetainExtractionMode.Get(), o.RetainExtractionMode.IsSet()
}

// HasRetainExtractionMode returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRetainExtractionMode() bool {
	if o != nil && o.RetainExtractionMode.IsSet() {
		return true
	}

	return false
}

// SetRetainExtractionMode gets a reference to the given NullableString and assigns it to the RetainExtractionMode field.
func (o *BankTemplateConfig) SetRetainExtractionMode(v string) {
	o.RetainExtractionMode.Set(&v)
}
// SetRetainExtractionModeNil sets the value for RetainExtractionMode to be an explicit nil
func (o *BankTemplateConfig) SetRetainExtractionModeNil() {
	o.RetainExtractionMode.Set(nil)
}

// UnsetRetainExtractionMode ensures that no value is present for RetainExtractionMode, not even an explicit nil
func (o *BankTemplateConfig) UnsetRetainExtractionMode() {
	o.RetainExtractionMode.Unset()
}

// GetRetainCustomInstructions returns the RetainCustomInstructions field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRetainCustomInstructions() string {
	if o == nil || IsNil(o.RetainCustomInstructions.Get()) {
		var ret string
		return ret
	}
	return *o.RetainCustomInstructions.Get()
}

// GetRetainCustomInstructionsOk returns a tuple with the RetainCustomInstructions field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRetainCustomInstructionsOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.RetainCustomInstructions.Get(), o.RetainCustomInstructions.IsSet()
}

// HasRetainCustomInstructions returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRetainCustomInstructions() bool {
	if o != nil && o.RetainCustomInstructions.IsSet() {
		return true
	}

	return false
}

// SetRetainCustomInstructions gets a reference to the given NullableString and assigns it to the RetainCustomInstructions field.
func (o *BankTemplateConfig) SetRetainCustomInstructions(v string) {
	o.RetainCustomInstructions.Set(&v)
}
// SetRetainCustomInstructionsNil sets the value for RetainCustomInstructions to be an explicit nil
func (o *BankTemplateConfig) SetRetainCustomInstructionsNil() {
	o.RetainCustomInstructions.Set(nil)
}

// UnsetRetainCustomInstructions ensures that no value is present for RetainCustomInstructions, not even an explicit nil
func (o *BankTemplateConfig) UnsetRetainCustomInstructions() {
	o.RetainCustomInstructions.Unset()
}

// GetRetainChunkSize returns the RetainChunkSize field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRetainChunkSize() int32 {
	if o == nil || IsNil(o.RetainChunkSize.Get()) {
		var ret int32
		return ret
	}
	return *o.RetainChunkSize.Get()
}

// GetRetainChunkSizeOk returns a tuple with the RetainChunkSize field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRetainChunkSizeOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RetainChunkSize.Get(), o.RetainChunkSize.IsSet()
}

// HasRetainChunkSize returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRetainChunkSize() bool {
	if o != nil && o.RetainChunkSize.IsSet() {
		return true
	}

	return false
}

// SetRetainChunkSize gets a reference to the given NullableInt32 and assigns it to the RetainChunkSize field.
func (o *BankTemplateConfig) SetRetainChunkSize(v int32) {
	o.RetainChunkSize.Set(&v)
}
// SetRetainChunkSizeNil sets the value for RetainChunkSize to be an explicit nil
func (o *BankTemplateConfig) SetRetainChunkSizeNil() {
	o.RetainChunkSize.Set(nil)
}

// UnsetRetainChunkSize ensures that no value is present for RetainChunkSize, not even an explicit nil
func (o *BankTemplateConfig) UnsetRetainChunkSize() {
	o.RetainChunkSize.Unset()
}

// GetEnableObservations returns the EnableObservations field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetEnableObservations() bool {
	if o == nil || IsNil(o.EnableObservations.Get()) {
		var ret bool
		return ret
	}
	return *o.EnableObservations.Get()
}

// GetEnableObservationsOk returns a tuple with the EnableObservations field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetEnableObservationsOk() (*bool, bool) {
	if o == nil {
		return nil, false
	}
	return o.EnableObservations.Get(), o.EnableObservations.IsSet()
}

// HasEnableObservations returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasEnableObservations() bool {
	if o != nil && o.EnableObservations.IsSet() {
		return true
	}

	return false
}

// SetEnableObservations gets a reference to the given NullableBool and assigns it to the EnableObservations field.
func (o *BankTemplateConfig) SetEnableObservations(v bool) {
	o.EnableObservations.Set(&v)
}
// SetEnableObservationsNil sets the value for EnableObservations to be an explicit nil
func (o *BankTemplateConfig) SetEnableObservationsNil() {
	o.EnableObservations.Set(nil)
}

// UnsetEnableObservations ensures that no value is present for EnableObservations, not even an explicit nil
func (o *BankTemplateConfig) UnsetEnableObservations() {
	o.EnableObservations.Unset()
}

// GetObservationsMission returns the ObservationsMission field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetObservationsMission() string {
	if o == nil || IsNil(o.ObservationsMission.Get()) {
		var ret string
		return ret
	}
	return *o.ObservationsMission.Get()
}

// GetObservationsMissionOk returns a tuple with the ObservationsMission field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetObservationsMissionOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.ObservationsMission.Get(), o.ObservationsMission.IsSet()
}

// HasObservationsMission returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasObservationsMission() bool {
	if o != nil && o.ObservationsMission.IsSet() {
		return true
	}

	return false
}

// SetObservationsMission gets a reference to the given NullableString and assigns it to the ObservationsMission field.
func (o *BankTemplateConfig) SetObservationsMission(v string) {
	o.ObservationsMission.Set(&v)
}
// SetObservationsMissionNil sets the value for ObservationsMission to be an explicit nil
func (o *BankTemplateConfig) SetObservationsMissionNil() {
	o.ObservationsMission.Set(nil)
}

// UnsetObservationsMission ensures that no value is present for ObservationsMission, not even an explicit nil
func (o *BankTemplateConfig) UnsetObservationsMission() {
	o.ObservationsMission.Unset()
}

// GetDispositionSkepticism returns the DispositionSkepticism field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetDispositionSkepticism() int32 {
	if o == nil || IsNil(o.DispositionSkepticism.Get()) {
		var ret int32
		return ret
	}
	return *o.DispositionSkepticism.Get()
}

// GetDispositionSkepticismOk returns a tuple with the DispositionSkepticism field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetDispositionSkepticismOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.DispositionSkepticism.Get(), o.DispositionSkepticism.IsSet()
}

// HasDispositionSkepticism returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasDispositionSkepticism() bool {
	if o != nil && o.DispositionSkepticism.IsSet() {
		return true
	}

	return false
}

// SetDispositionSkepticism gets a reference to the given NullableInt32 and assigns it to the DispositionSkepticism field.
func (o *BankTemplateConfig) SetDispositionSkepticism(v int32) {
	o.DispositionSkepticism.Set(&v)
}
// SetDispositionSkepticismNil sets the value for DispositionSkepticism to be an explicit nil
func (o *BankTemplateConfig) SetDispositionSkepticismNil() {
	o.DispositionSkepticism.Set(nil)
}

// UnsetDispositionSkepticism ensures that no value is present for DispositionSkepticism, not even an explicit nil
func (o *BankTemplateConfig) UnsetDispositionSkepticism() {
	o.DispositionSkepticism.Unset()
}

// GetDispositionLiteralism returns the DispositionLiteralism field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetDispositionLiteralism() int32 {
	if o == nil || IsNil(o.DispositionLiteralism.Get()) {
		var ret int32
		return ret
	}
	return *o.DispositionLiteralism.Get()
}

// GetDispositionLiteralismOk returns a tuple with the DispositionLiteralism field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetDispositionLiteralismOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.DispositionLiteralism.Get(), o.DispositionLiteralism.IsSet()
}

// HasDispositionLiteralism returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasDispositionLiteralism() bool {
	if o != nil && o.DispositionLiteralism.IsSet() {
		return true
	}

	return false
}

// SetDispositionLiteralism gets a reference to the given NullableInt32 and assigns it to the DispositionLiteralism field.
func (o *BankTemplateConfig) SetDispositionLiteralism(v int32) {
	o.DispositionLiteralism.Set(&v)
}
// SetDispositionLiteralismNil sets the value for DispositionLiteralism to be an explicit nil
func (o *BankTemplateConfig) SetDispositionLiteralismNil() {
	o.DispositionLiteralism.Set(nil)
}

// UnsetDispositionLiteralism ensures that no value is present for DispositionLiteralism, not even an explicit nil
func (o *BankTemplateConfig) UnsetDispositionLiteralism() {
	o.DispositionLiteralism.Unset()
}

// GetDispositionEmpathy returns the DispositionEmpathy field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetDispositionEmpathy() int32 {
	if o == nil || IsNil(o.DispositionEmpathy.Get()) {
		var ret int32
		return ret
	}
	return *o.DispositionEmpathy.Get()
}

// GetDispositionEmpathyOk returns a tuple with the DispositionEmpathy field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetDispositionEmpathyOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.DispositionEmpathy.Get(), o.DispositionEmpathy.IsSet()
}

// HasDispositionEmpathy returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasDispositionEmpathy() bool {
	if o != nil && o.DispositionEmpathy.IsSet() {
		return true
	}

	return false
}

// SetDispositionEmpathy gets a reference to the given NullableInt32 and assigns it to the DispositionEmpathy field.
func (o *BankTemplateConfig) SetDispositionEmpathy(v int32) {
	o.DispositionEmpathy.Set(&v)
}
// SetDispositionEmpathyNil sets the value for DispositionEmpathy to be an explicit nil
func (o *BankTemplateConfig) SetDispositionEmpathyNil() {
	o.DispositionEmpathy.Set(nil)
}

// UnsetDispositionEmpathy ensures that no value is present for DispositionEmpathy, not even an explicit nil
func (o *BankTemplateConfig) UnsetDispositionEmpathy() {
	o.DispositionEmpathy.Unset()
}

// GetEntityLabels returns the EntityLabels field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetEntityLabels() []map[string]interface{} {
	if o == nil {
		var ret []map[string]interface{}
		return ret
	}
	return o.EntityLabels
}

// GetEntityLabelsOk returns a tuple with the EntityLabels field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetEntityLabelsOk() ([]map[string]interface{}, bool) {
	if o == nil || IsNil(o.EntityLabels) {
		return nil, false
	}
	return o.EntityLabels, true
}

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

	return false
}

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

// GetEntitiesAllowFreeForm returns the EntitiesAllowFreeForm field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetEntitiesAllowFreeForm() bool {
	if o == nil || IsNil(o.EntitiesAllowFreeForm.Get()) {
		var ret bool
		return ret
	}
	return *o.EntitiesAllowFreeForm.Get()
}

// GetEntitiesAllowFreeFormOk returns a tuple with the EntitiesAllowFreeForm field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetEntitiesAllowFreeFormOk() (*bool, bool) {
	if o == nil {
		return nil, false
	}
	return o.EntitiesAllowFreeForm.Get(), o.EntitiesAllowFreeForm.IsSet()
}

// HasEntitiesAllowFreeForm returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasEntitiesAllowFreeForm() bool {
	if o != nil && o.EntitiesAllowFreeForm.IsSet() {
		return true
	}

	return false
}

// SetEntitiesAllowFreeForm gets a reference to the given NullableBool and assigns it to the EntitiesAllowFreeForm field.
func (o *BankTemplateConfig) SetEntitiesAllowFreeForm(v bool) {
	o.EntitiesAllowFreeForm.Set(&v)
}
// SetEntitiesAllowFreeFormNil sets the value for EntitiesAllowFreeForm to be an explicit nil
func (o *BankTemplateConfig) SetEntitiesAllowFreeFormNil() {
	o.EntitiesAllowFreeForm.Set(nil)
}

// UnsetEntitiesAllowFreeForm ensures that no value is present for EntitiesAllowFreeForm, not even an explicit nil
func (o *BankTemplateConfig) UnsetEntitiesAllowFreeForm() {
	o.EntitiesAllowFreeForm.Unset()
}

// GetRetainDefaultStrategy returns the RetainDefaultStrategy field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRetainDefaultStrategy() string {
	if o == nil || IsNil(o.RetainDefaultStrategy.Get()) {
		var ret string
		return ret
	}
	return *o.RetainDefaultStrategy.Get()
}

// GetRetainDefaultStrategyOk returns a tuple with the RetainDefaultStrategy field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRetainDefaultStrategyOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.RetainDefaultStrategy.Get(), o.RetainDefaultStrategy.IsSet()
}

// HasRetainDefaultStrategy returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRetainDefaultStrategy() bool {
	if o != nil && o.RetainDefaultStrategy.IsSet() {
		return true
	}

	return false
}

// SetRetainDefaultStrategy gets a reference to the given NullableString and assigns it to the RetainDefaultStrategy field.
func (o *BankTemplateConfig) SetRetainDefaultStrategy(v string) {
	o.RetainDefaultStrategy.Set(&v)
}
// SetRetainDefaultStrategyNil sets the value for RetainDefaultStrategy to be an explicit nil
func (o *BankTemplateConfig) SetRetainDefaultStrategyNil() {
	o.RetainDefaultStrategy.Set(nil)
}

// UnsetRetainDefaultStrategy ensures that no value is present for RetainDefaultStrategy, not even an explicit nil
func (o *BankTemplateConfig) UnsetRetainDefaultStrategy() {
	o.RetainDefaultStrategy.Unset()
}

// GetRetainStrategies returns the RetainStrategies field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRetainStrategies() map[string]interface{} {
	if o == nil {
		var ret map[string]interface{}
		return ret
	}
	return o.RetainStrategies
}

// GetRetainStrategiesOk returns a tuple with the RetainStrategies field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRetainStrategiesOk() (map[string]interface{}, bool) {
	if o == nil || IsNil(o.RetainStrategies) {
		return map[string]interface{}{}, false
	}
	return o.RetainStrategies, true
}

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

	return false
}

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

// GetRetainChunkBatchSize returns the RetainChunkBatchSize field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRetainChunkBatchSize() int32 {
	if o == nil || IsNil(o.RetainChunkBatchSize.Get()) {
		var ret int32
		return ret
	}
	return *o.RetainChunkBatchSize.Get()
}

// GetRetainChunkBatchSizeOk returns a tuple with the RetainChunkBatchSize field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRetainChunkBatchSizeOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RetainChunkBatchSize.Get(), o.RetainChunkBatchSize.IsSet()
}

// HasRetainChunkBatchSize returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRetainChunkBatchSize() bool {
	if o != nil && o.RetainChunkBatchSize.IsSet() {
		return true
	}

	return false
}

// SetRetainChunkBatchSize gets a reference to the given NullableInt32 and assigns it to the RetainChunkBatchSize field.
func (o *BankTemplateConfig) SetRetainChunkBatchSize(v int32) {
	o.RetainChunkBatchSize.Set(&v)
}
// SetRetainChunkBatchSizeNil sets the value for RetainChunkBatchSize to be an explicit nil
func (o *BankTemplateConfig) SetRetainChunkBatchSizeNil() {
	o.RetainChunkBatchSize.Set(nil)
}

// UnsetRetainChunkBatchSize ensures that no value is present for RetainChunkBatchSize, not even an explicit nil
func (o *BankTemplateConfig) UnsetRetainChunkBatchSize() {
	o.RetainChunkBatchSize.Unset()
}

// GetMcpEnabledTools returns the McpEnabledTools field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetMcpEnabledTools() []string {
	if o == nil {
		var ret []string
		return ret
	}
	return o.McpEnabledTools
}

// GetMcpEnabledToolsOk returns a tuple with the McpEnabledTools field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetMcpEnabledToolsOk() ([]string, bool) {
	if o == nil || IsNil(o.McpEnabledTools) {
		return nil, false
	}
	return o.McpEnabledTools, true
}

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

	return false
}

// SetMcpEnabledTools gets a reference to the given []string and assigns it to the McpEnabledTools field.
func (o *BankTemplateConfig) SetMcpEnabledTools(v []string) {
	o.McpEnabledTools = v
}

// GetConsolidationLlmBatchSize returns the ConsolidationLlmBatchSize field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetConsolidationLlmBatchSize() int32 {
	if o == nil || IsNil(o.ConsolidationLlmBatchSize.Get()) {
		var ret int32
		return ret
	}
	return *o.ConsolidationLlmBatchSize.Get()
}

// GetConsolidationLlmBatchSizeOk returns a tuple with the ConsolidationLlmBatchSize field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetConsolidationLlmBatchSizeOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.ConsolidationLlmBatchSize.Get(), o.ConsolidationLlmBatchSize.IsSet()
}

// HasConsolidationLlmBatchSize returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasConsolidationLlmBatchSize() bool {
	if o != nil && o.ConsolidationLlmBatchSize.IsSet() {
		return true
	}

	return false
}

// SetConsolidationLlmBatchSize gets a reference to the given NullableInt32 and assigns it to the ConsolidationLlmBatchSize field.
func (o *BankTemplateConfig) SetConsolidationLlmBatchSize(v int32) {
	o.ConsolidationLlmBatchSize.Set(&v)
}
// SetConsolidationLlmBatchSizeNil sets the value for ConsolidationLlmBatchSize to be an explicit nil
func (o *BankTemplateConfig) SetConsolidationLlmBatchSizeNil() {
	o.ConsolidationLlmBatchSize.Set(nil)
}

// UnsetConsolidationLlmBatchSize ensures that no value is present for ConsolidationLlmBatchSize, not even an explicit nil
func (o *BankTemplateConfig) UnsetConsolidationLlmBatchSize() {
	o.ConsolidationLlmBatchSize.Unset()
}

// GetConsolidationSourceFactsMaxTokens returns the ConsolidationSourceFactsMaxTokens field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetConsolidationSourceFactsMaxTokens() int32 {
	if o == nil || IsNil(o.ConsolidationSourceFactsMaxTokens.Get()) {
		var ret int32
		return ret
	}
	return *o.ConsolidationSourceFactsMaxTokens.Get()
}

// GetConsolidationSourceFactsMaxTokensOk returns a tuple with the ConsolidationSourceFactsMaxTokens field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetConsolidationSourceFactsMaxTokensOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.ConsolidationSourceFactsMaxTokens.Get(), o.ConsolidationSourceFactsMaxTokens.IsSet()
}

// HasConsolidationSourceFactsMaxTokens returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasConsolidationSourceFactsMaxTokens() bool {
	if o != nil && o.ConsolidationSourceFactsMaxTokens.IsSet() {
		return true
	}

	return false
}

// SetConsolidationSourceFactsMaxTokens gets a reference to the given NullableInt32 and assigns it to the ConsolidationSourceFactsMaxTokens field.
func (o *BankTemplateConfig) SetConsolidationSourceFactsMaxTokens(v int32) {
	o.ConsolidationSourceFactsMaxTokens.Set(&v)
}
// SetConsolidationSourceFactsMaxTokensNil sets the value for ConsolidationSourceFactsMaxTokens to be an explicit nil
func (o *BankTemplateConfig) SetConsolidationSourceFactsMaxTokensNil() {
	o.ConsolidationSourceFactsMaxTokens.Set(nil)
}

// UnsetConsolidationSourceFactsMaxTokens ensures that no value is present for ConsolidationSourceFactsMaxTokens, not even an explicit nil
func (o *BankTemplateConfig) UnsetConsolidationSourceFactsMaxTokens() {
	o.ConsolidationSourceFactsMaxTokens.Unset()
}

// GetConsolidationSourceFactsMaxTokensPerObservation returns the ConsolidationSourceFactsMaxTokensPerObservation field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetConsolidationSourceFactsMaxTokensPerObservation() int32 {
	if o == nil || IsNil(o.ConsolidationSourceFactsMaxTokensPerObservation.Get()) {
		var ret int32
		return ret
	}
	return *o.ConsolidationSourceFactsMaxTokensPerObservation.Get()
}

// GetConsolidationSourceFactsMaxTokensPerObservationOk returns a tuple with the ConsolidationSourceFactsMaxTokensPerObservation field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetConsolidationSourceFactsMaxTokensPerObservationOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.ConsolidationSourceFactsMaxTokensPerObservation.Get(), o.ConsolidationSourceFactsMaxTokensPerObservation.IsSet()
}

// HasConsolidationSourceFactsMaxTokensPerObservation returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasConsolidationSourceFactsMaxTokensPerObservation() bool {
	if o != nil && o.ConsolidationSourceFactsMaxTokensPerObservation.IsSet() {
		return true
	}

	return false
}

// SetConsolidationSourceFactsMaxTokensPerObservation gets a reference to the given NullableInt32 and assigns it to the ConsolidationSourceFactsMaxTokensPerObservation field.
func (o *BankTemplateConfig) SetConsolidationSourceFactsMaxTokensPerObservation(v int32) {
	o.ConsolidationSourceFactsMaxTokensPerObservation.Set(&v)
}
// SetConsolidationSourceFactsMaxTokensPerObservationNil sets the value for ConsolidationSourceFactsMaxTokensPerObservation to be an explicit nil
func (o *BankTemplateConfig) SetConsolidationSourceFactsMaxTokensPerObservationNil() {
	o.ConsolidationSourceFactsMaxTokensPerObservation.Set(nil)
}

// UnsetConsolidationSourceFactsMaxTokensPerObservation ensures that no value is present for ConsolidationSourceFactsMaxTokensPerObservation, not even an explicit nil
func (o *BankTemplateConfig) UnsetConsolidationSourceFactsMaxTokensPerObservation() {
	o.ConsolidationSourceFactsMaxTokensPerObservation.Unset()
}

// GetMaxObservationsPerScope returns the MaxObservationsPerScope field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetMaxObservationsPerScope() int32 {
	if o == nil || IsNil(o.MaxObservationsPerScope.Get()) {
		var ret int32
		return ret
	}
	return *o.MaxObservationsPerScope.Get()
}

// GetMaxObservationsPerScopeOk returns a tuple with the MaxObservationsPerScope field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetMaxObservationsPerScopeOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.MaxObservationsPerScope.Get(), o.MaxObservationsPerScope.IsSet()
}

// HasMaxObservationsPerScope returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasMaxObservationsPerScope() bool {
	if o != nil && o.MaxObservationsPerScope.IsSet() {
		return true
	}

	return false
}

// SetMaxObservationsPerScope gets a reference to the given NullableInt32 and assigns it to the MaxObservationsPerScope field.
func (o *BankTemplateConfig) SetMaxObservationsPerScope(v int32) {
	o.MaxObservationsPerScope.Set(&v)
}
// SetMaxObservationsPerScopeNil sets the value for MaxObservationsPerScope to be an explicit nil
func (o *BankTemplateConfig) SetMaxObservationsPerScopeNil() {
	o.MaxObservationsPerScope.Set(nil)
}

// UnsetMaxObservationsPerScope ensures that no value is present for MaxObservationsPerScope, not even an explicit nil
func (o *BankTemplateConfig) UnsetMaxObservationsPerScope() {
	o.MaxObservationsPerScope.Unset()
}

// GetReflectSourceFactsMaxTokens returns the ReflectSourceFactsMaxTokens field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetReflectSourceFactsMaxTokens() int32 {
	if o == nil || IsNil(o.ReflectSourceFactsMaxTokens.Get()) {
		var ret int32
		return ret
	}
	return *o.ReflectSourceFactsMaxTokens.Get()
}

// GetReflectSourceFactsMaxTokensOk returns a tuple with the ReflectSourceFactsMaxTokens field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetReflectSourceFactsMaxTokensOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.ReflectSourceFactsMaxTokens.Get(), o.ReflectSourceFactsMaxTokens.IsSet()
}

// HasReflectSourceFactsMaxTokens returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasReflectSourceFactsMaxTokens() bool {
	if o != nil && o.ReflectSourceFactsMaxTokens.IsSet() {
		return true
	}

	return false
}

// SetReflectSourceFactsMaxTokens gets a reference to the given NullableInt32 and assigns it to the ReflectSourceFactsMaxTokens field.
func (o *BankTemplateConfig) SetReflectSourceFactsMaxTokens(v int32) {
	o.ReflectSourceFactsMaxTokens.Set(&v)
}
// SetReflectSourceFactsMaxTokensNil sets the value for ReflectSourceFactsMaxTokens to be an explicit nil
func (o *BankTemplateConfig) SetReflectSourceFactsMaxTokensNil() {
	o.ReflectSourceFactsMaxTokens.Set(nil)
}

// UnsetReflectSourceFactsMaxTokens ensures that no value is present for ReflectSourceFactsMaxTokens, not even an explicit nil
func (o *BankTemplateConfig) UnsetReflectSourceFactsMaxTokens() {
	o.ReflectSourceFactsMaxTokens.Unset()
}

// GetLlmGeminiSafetySettings returns the LlmGeminiSafetySettings field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetLlmGeminiSafetySettings() []interface{} {
	if o == nil {
		var ret []interface{}
		return ret
	}
	return o.LlmGeminiSafetySettings
}

// GetLlmGeminiSafetySettingsOk returns a tuple with the LlmGeminiSafetySettings field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetLlmGeminiSafetySettingsOk() ([]interface{}, bool) {
	if o == nil || IsNil(o.LlmGeminiSafetySettings) {
		return nil, false
	}
	return o.LlmGeminiSafetySettings, true
}

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

	return false
}

// SetLlmGeminiSafetySettings gets a reference to the given []interface{} and assigns it to the LlmGeminiSafetySettings field.
func (o *BankTemplateConfig) SetLlmGeminiSafetySettings(v []interface{}) {
	o.LlmGeminiSafetySettings = v
}

// GetRecallBudgetFunction returns the RecallBudgetFunction field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetFunction() string {
	if o == nil || IsNil(o.RecallBudgetFunction.Get()) {
		var ret string
		return ret
	}
	return *o.RecallBudgetFunction.Get()
}

// GetRecallBudgetFunctionOk returns a tuple with the RecallBudgetFunction field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetFunctionOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetFunction.Get(), o.RecallBudgetFunction.IsSet()
}

// HasRecallBudgetFunction returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetFunction() bool {
	if o != nil && o.RecallBudgetFunction.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetFunction gets a reference to the given NullableString and assigns it to the RecallBudgetFunction field.
func (o *BankTemplateConfig) SetRecallBudgetFunction(v string) {
	o.RecallBudgetFunction.Set(&v)
}
// SetRecallBudgetFunctionNil sets the value for RecallBudgetFunction to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetFunctionNil() {
	o.RecallBudgetFunction.Set(nil)
}

// UnsetRecallBudgetFunction ensures that no value is present for RecallBudgetFunction, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetFunction() {
	o.RecallBudgetFunction.Unset()
}

// GetRecallBudgetFixedLow returns the RecallBudgetFixedLow field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetFixedLow() int32 {
	if o == nil || IsNil(o.RecallBudgetFixedLow.Get()) {
		var ret int32
		return ret
	}
	return *o.RecallBudgetFixedLow.Get()
}

// GetRecallBudgetFixedLowOk returns a tuple with the RecallBudgetFixedLow field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetFixedLowOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetFixedLow.Get(), o.RecallBudgetFixedLow.IsSet()
}

// HasRecallBudgetFixedLow returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetFixedLow() bool {
	if o != nil && o.RecallBudgetFixedLow.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetFixedLow gets a reference to the given NullableInt32 and assigns it to the RecallBudgetFixedLow field.
func (o *BankTemplateConfig) SetRecallBudgetFixedLow(v int32) {
	o.RecallBudgetFixedLow.Set(&v)
}
// SetRecallBudgetFixedLowNil sets the value for RecallBudgetFixedLow to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetFixedLowNil() {
	o.RecallBudgetFixedLow.Set(nil)
}

// UnsetRecallBudgetFixedLow ensures that no value is present for RecallBudgetFixedLow, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetFixedLow() {
	o.RecallBudgetFixedLow.Unset()
}

// GetRecallBudgetFixedMid returns the RecallBudgetFixedMid field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetFixedMid() int32 {
	if o == nil || IsNil(o.RecallBudgetFixedMid.Get()) {
		var ret int32
		return ret
	}
	return *o.RecallBudgetFixedMid.Get()
}

// GetRecallBudgetFixedMidOk returns a tuple with the RecallBudgetFixedMid field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetFixedMidOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetFixedMid.Get(), o.RecallBudgetFixedMid.IsSet()
}

// HasRecallBudgetFixedMid returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetFixedMid() bool {
	if o != nil && o.RecallBudgetFixedMid.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetFixedMid gets a reference to the given NullableInt32 and assigns it to the RecallBudgetFixedMid field.
func (o *BankTemplateConfig) SetRecallBudgetFixedMid(v int32) {
	o.RecallBudgetFixedMid.Set(&v)
}
// SetRecallBudgetFixedMidNil sets the value for RecallBudgetFixedMid to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetFixedMidNil() {
	o.RecallBudgetFixedMid.Set(nil)
}

// UnsetRecallBudgetFixedMid ensures that no value is present for RecallBudgetFixedMid, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetFixedMid() {
	o.RecallBudgetFixedMid.Unset()
}

// GetRecallBudgetFixedHigh returns the RecallBudgetFixedHigh field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetFixedHigh() int32 {
	if o == nil || IsNil(o.RecallBudgetFixedHigh.Get()) {
		var ret int32
		return ret
	}
	return *o.RecallBudgetFixedHigh.Get()
}

// GetRecallBudgetFixedHighOk returns a tuple with the RecallBudgetFixedHigh field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetFixedHighOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetFixedHigh.Get(), o.RecallBudgetFixedHigh.IsSet()
}

// HasRecallBudgetFixedHigh returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetFixedHigh() bool {
	if o != nil && o.RecallBudgetFixedHigh.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetFixedHigh gets a reference to the given NullableInt32 and assigns it to the RecallBudgetFixedHigh field.
func (o *BankTemplateConfig) SetRecallBudgetFixedHigh(v int32) {
	o.RecallBudgetFixedHigh.Set(&v)
}
// SetRecallBudgetFixedHighNil sets the value for RecallBudgetFixedHigh to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetFixedHighNil() {
	o.RecallBudgetFixedHigh.Set(nil)
}

// UnsetRecallBudgetFixedHigh ensures that no value is present for RecallBudgetFixedHigh, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetFixedHigh() {
	o.RecallBudgetFixedHigh.Unset()
}

// GetRecallBudgetAdaptiveLow returns the RecallBudgetAdaptiveLow field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetAdaptiveLow() float32 {
	if o == nil || IsNil(o.RecallBudgetAdaptiveLow.Get()) {
		var ret float32
		return ret
	}
	return *o.RecallBudgetAdaptiveLow.Get()
}

// GetRecallBudgetAdaptiveLowOk returns a tuple with the RecallBudgetAdaptiveLow field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetAdaptiveLowOk() (*float32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetAdaptiveLow.Get(), o.RecallBudgetAdaptiveLow.IsSet()
}

// HasRecallBudgetAdaptiveLow returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetAdaptiveLow() bool {
	if o != nil && o.RecallBudgetAdaptiveLow.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetAdaptiveLow gets a reference to the given NullableFloat32 and assigns it to the RecallBudgetAdaptiveLow field.
func (o *BankTemplateConfig) SetRecallBudgetAdaptiveLow(v float32) {
	o.RecallBudgetAdaptiveLow.Set(&v)
}
// SetRecallBudgetAdaptiveLowNil sets the value for RecallBudgetAdaptiveLow to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetAdaptiveLowNil() {
	o.RecallBudgetAdaptiveLow.Set(nil)
}

// UnsetRecallBudgetAdaptiveLow ensures that no value is present for RecallBudgetAdaptiveLow, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetAdaptiveLow() {
	o.RecallBudgetAdaptiveLow.Unset()
}

// GetRecallBudgetAdaptiveMid returns the RecallBudgetAdaptiveMid field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetAdaptiveMid() float32 {
	if o == nil || IsNil(o.RecallBudgetAdaptiveMid.Get()) {
		var ret float32
		return ret
	}
	return *o.RecallBudgetAdaptiveMid.Get()
}

// GetRecallBudgetAdaptiveMidOk returns a tuple with the RecallBudgetAdaptiveMid field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetAdaptiveMidOk() (*float32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetAdaptiveMid.Get(), o.RecallBudgetAdaptiveMid.IsSet()
}

// HasRecallBudgetAdaptiveMid returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetAdaptiveMid() bool {
	if o != nil && o.RecallBudgetAdaptiveMid.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetAdaptiveMid gets a reference to the given NullableFloat32 and assigns it to the RecallBudgetAdaptiveMid field.
func (o *BankTemplateConfig) SetRecallBudgetAdaptiveMid(v float32) {
	o.RecallBudgetAdaptiveMid.Set(&v)
}
// SetRecallBudgetAdaptiveMidNil sets the value for RecallBudgetAdaptiveMid to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetAdaptiveMidNil() {
	o.RecallBudgetAdaptiveMid.Set(nil)
}

// UnsetRecallBudgetAdaptiveMid ensures that no value is present for RecallBudgetAdaptiveMid, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetAdaptiveMid() {
	o.RecallBudgetAdaptiveMid.Unset()
}

// GetRecallBudgetAdaptiveHigh returns the RecallBudgetAdaptiveHigh field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetAdaptiveHigh() float32 {
	if o == nil || IsNil(o.RecallBudgetAdaptiveHigh.Get()) {
		var ret float32
		return ret
	}
	return *o.RecallBudgetAdaptiveHigh.Get()
}

// GetRecallBudgetAdaptiveHighOk returns a tuple with the RecallBudgetAdaptiveHigh field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetAdaptiveHighOk() (*float32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetAdaptiveHigh.Get(), o.RecallBudgetAdaptiveHigh.IsSet()
}

// HasRecallBudgetAdaptiveHigh returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetAdaptiveHigh() bool {
	if o != nil && o.RecallBudgetAdaptiveHigh.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetAdaptiveHigh gets a reference to the given NullableFloat32 and assigns it to the RecallBudgetAdaptiveHigh field.
func (o *BankTemplateConfig) SetRecallBudgetAdaptiveHigh(v float32) {
	o.RecallBudgetAdaptiveHigh.Set(&v)
}
// SetRecallBudgetAdaptiveHighNil sets the value for RecallBudgetAdaptiveHigh to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetAdaptiveHighNil() {
	o.RecallBudgetAdaptiveHigh.Set(nil)
}

// UnsetRecallBudgetAdaptiveHigh ensures that no value is present for RecallBudgetAdaptiveHigh, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetAdaptiveHigh() {
	o.RecallBudgetAdaptiveHigh.Unset()
}

// GetRecallBudgetMin returns the RecallBudgetMin field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetMin() int32 {
	if o == nil || IsNil(o.RecallBudgetMin.Get()) {
		var ret int32
		return ret
	}
	return *o.RecallBudgetMin.Get()
}

// GetRecallBudgetMinOk returns a tuple with the RecallBudgetMin field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetMinOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetMin.Get(), o.RecallBudgetMin.IsSet()
}

// HasRecallBudgetMin returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetMin() bool {
	if o != nil && o.RecallBudgetMin.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetMin gets a reference to the given NullableInt32 and assigns it to the RecallBudgetMin field.
func (o *BankTemplateConfig) SetRecallBudgetMin(v int32) {
	o.RecallBudgetMin.Set(&v)
}
// SetRecallBudgetMinNil sets the value for RecallBudgetMin to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetMinNil() {
	o.RecallBudgetMin.Set(nil)
}

// UnsetRecallBudgetMin ensures that no value is present for RecallBudgetMin, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetMin() {
	o.RecallBudgetMin.Unset()
}

// GetRecallBudgetMax returns the RecallBudgetMax field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *BankTemplateConfig) GetRecallBudgetMax() int32 {
	if o == nil || IsNil(o.RecallBudgetMax.Get()) {
		var ret int32
		return ret
	}
	return *o.RecallBudgetMax.Get()
}

// GetRecallBudgetMaxOk returns a tuple with the RecallBudgetMax field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *BankTemplateConfig) GetRecallBudgetMaxOk() (*int32, bool) {
	if o == nil {
		return nil, false
	}
	return o.RecallBudgetMax.Get(), o.RecallBudgetMax.IsSet()
}

// HasRecallBudgetMax returns a boolean if a field has been set.
func (o *BankTemplateConfig) HasRecallBudgetMax() bool {
	if o != nil && o.RecallBudgetMax.IsSet() {
		return true
	}

	return false
}

// SetRecallBudgetMax gets a reference to the given NullableInt32 and assigns it to the RecallBudgetMax field.
func (o *BankTemplateConfig) SetRecallBudgetMax(v int32) {
	o.RecallBudgetMax.Set(&v)
}
// SetRecallBudgetMaxNil sets the value for RecallBudgetMax to be an explicit nil
func (o *BankTemplateConfig) SetRecallBudgetMaxNil() {
	o.RecallBudgetMax.Set(nil)
}

// UnsetRecallBudgetMax ensures that no value is present for RecallBudgetMax, not even an explicit nil
func (o *BankTemplateConfig) UnsetRecallBudgetMax() {
	o.RecallBudgetMax.Unset()
}

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

func (o BankTemplateConfig) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if o.ReflectMission.IsSet() {
		toSerialize["reflect_mission"] = o.ReflectMission.Get()
	}
	if o.RetainMission.IsSet() {
		toSerialize["retain_mission"] = o.RetainMission.Get()
	}
	if o.RetainExtractionMode.IsSet() {
		toSerialize["retain_extraction_mode"] = o.RetainExtractionMode.Get()
	}
	if o.RetainCustomInstructions.IsSet() {
		toSerialize["retain_custom_instructions"] = o.RetainCustomInstructions.Get()
	}
	if o.RetainChunkSize.IsSet() {
		toSerialize["retain_chunk_size"] = o.RetainChunkSize.Get()
	}
	if o.EnableObservations.IsSet() {
		toSerialize["enable_observations"] = o.EnableObservations.Get()
	}
	if o.ObservationsMission.IsSet() {
		toSerialize["observations_mission"] = o.ObservationsMission.Get()
	}
	if o.DispositionSkepticism.IsSet() {
		toSerialize["disposition_skepticism"] = o.DispositionSkepticism.Get()
	}
	if o.DispositionLiteralism.IsSet() {
		toSerialize["disposition_literalism"] = o.DispositionLiteralism.Get()
	}
	if o.DispositionEmpathy.IsSet() {
		toSerialize["disposition_empathy"] = o.DispositionEmpathy.Get()
	}
	if o.EntityLabels != nil {
		toSerialize["entity_labels"] = o.EntityLabels
	}
	if o.EntitiesAllowFreeForm.IsSet() {
		toSerialize["entities_allow_free_form"] = o.EntitiesAllowFreeForm.Get()
	}
	if o.RetainDefaultStrategy.IsSet() {
		toSerialize["retain_default_strategy"] = o.RetainDefaultStrategy.Get()
	}
	if o.RetainStrategies != nil {
		toSerialize["retain_strategies"] = o.RetainStrategies
	}
	if o.RetainChunkBatchSize.IsSet() {
		toSerialize["retain_chunk_batch_size"] = o.RetainChunkBatchSize.Get()
	}
	if o.McpEnabledTools != nil {
		toSerialize["mcp_enabled_tools"] = o.McpEnabledTools
	}
	if o.ConsolidationLlmBatchSize.IsSet() {
		toSerialize["consolidation_llm_batch_size"] = o.ConsolidationLlmBatchSize.Get()
	}
	if o.ConsolidationSourceFactsMaxTokens.IsSet() {
		toSerialize["consolidation_source_facts_max_tokens"] = o.ConsolidationSourceFactsMaxTokens.Get()
	}
	if o.ConsolidationSourceFactsMaxTokensPerObservation.IsSet() {
		toSerialize["consolidation_source_facts_max_tokens_per_observation"] = o.ConsolidationSourceFactsMaxTokensPerObservation.Get()
	}
	if o.MaxObservationsPerScope.IsSet() {
		toSerialize["max_observations_per_scope"] = o.MaxObservationsPerScope.Get()
	}
	if o.ReflectSourceFactsMaxTokens.IsSet() {
		toSerialize["reflect_source_facts_max_tokens"] = o.ReflectSourceFactsMaxTokens.Get()
	}
	if o.LlmGeminiSafetySettings != nil {
		toSerialize["llm_gemini_safety_settings"] = o.LlmGeminiSafetySettings
	}
	if o.RecallBudgetFunction.IsSet() {
		toSerialize["recall_budget_function"] = o.RecallBudgetFunction.Get()
	}
	if o.RecallBudgetFixedLow.IsSet() {
		toSerialize["recall_budget_fixed_low"] = o.RecallBudgetFixedLow.Get()
	}
	if o.RecallBudgetFixedMid.IsSet() {
		toSerialize["recall_budget_fixed_mid"] = o.RecallBudgetFixedMid.Get()
	}
	if o.RecallBudgetFixedHigh.IsSet() {
		toSerialize["recall_budget_fixed_high"] = o.RecallBudgetFixedHigh.Get()
	}
	if o.RecallBudgetAdaptiveLow.IsSet() {
		toSerialize["recall_budget_adaptive_low"] = o.RecallBudgetAdaptiveLow.Get()
	}
	if o.RecallBudgetAdaptiveMid.IsSet() {
		toSerialize["recall_budget_adaptive_mid"] = o.RecallBudgetAdaptiveMid.Get()
	}
	if o.RecallBudgetAdaptiveHigh.IsSet() {
		toSerialize["recall_budget_adaptive_high"] = o.RecallBudgetAdaptiveHigh.Get()
	}
	if o.RecallBudgetMin.IsSet() {
		toSerialize["recall_budget_min"] = o.RecallBudgetMin.Get()
	}
	if o.RecallBudgetMax.IsSet() {
		toSerialize["recall_budget_max"] = o.RecallBudgetMax.Get()
	}
	return toSerialize, nil
}

type NullableBankTemplateConfig struct {
	value *BankTemplateConfig
	isSet bool
}

func (v NullableBankTemplateConfig) Get() *BankTemplateConfig {
	return v.value
}

func (v *NullableBankTemplateConfig) Set(val *BankTemplateConfig) {
	v.value = val
	v.isSet = true
}

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

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

func NewNullableBankTemplateConfig(val *BankTemplateConfig) *NullableBankTemplateConfig {
	return &NullableBankTemplateConfig{value: val, isSet: true}
}

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

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


