func (o *BankTransferCreateRequest) HasMetadata() bool {
	if o != nil && o.Metadata != nil {
		return true
	}
	return false
}
HasMetadata returns a boolean if a field has been set.
package plaid
import (
	"encoding/json"
)
type BankTransferCreateRequest struct {
	ClientId *string `json:"client_id,omitempty"`
	Secret *string `json:"secret,omitempty"`
	IdempotencyKey string `json:"idempotency_key"`
	AccessToken string `json:"access_token"`
	AccountId string `json:"account_id"`
	Type BankTransferType `json:"type"`
	Network BankTransferNetwork `json:"network"`
	Amount string `json:"amount"`
	IsoCurrencyCode string `json:"iso_currency_code"`
	Description string `json:"description"`
	AchClass *ACHClass `json:"ach_class,omitempty"`
	User BankTransferUser `json:"user"`
	CustomTag NullableString `json:"custom_tag,omitempty"`
	Metadata map[string]string `json:"metadata,omitempty"`
	OriginationAccountId NullableString `json:"origination_account_id,omitempty"`
}
func NewBankTransferCreateRequest(idempotencyKey string, accessToken string, accountId string, type_ BankTransferType, network BankTransferNetwork, amount string, isoCurrencyCode string, description string, user BankTransferUser) *BankTransferCreateRequest {
	this := BankTransferCreateRequest{}
	this.IdempotencyKey = idempotencyKey
	this.AccessToken = accessToken
	this.AccountId = accountId
	this.Type = type_
	this.Network = network
	this.Amount = amount
	this.IsoCurrencyCode = isoCurrencyCode
	this.Description = description
	this.User = user
	return &this
}
func NewBankTransferCreateRequestWithDefaults() *BankTransferCreateRequest {
	this := BankTransferCreateRequest{}
	return &this
}
func (o *BankTransferCreateRequest) GetClientId() string {
	if o == nil || o.ClientId == nil {
		var ret string
		return ret
	}
	return *o.ClientId
}
func (o *BankTransferCreateRequest) GetClientIdOk() (*string, bool) {
	if o == nil || o.ClientId == nil {
		return nil, false
	}
	return o.ClientId, true
}
func (o *BankTransferCreateRequest) HasClientId() bool {
	if o != nil && o.ClientId != nil {
		return true
	}
	return false
}
func (o *BankTransferCreateRequest) SetClientId(v string) {
	o.ClientId = &v
}
func (o *BankTransferCreateRequest) GetSecret() string {
	if o == nil || o.Secret == nil {
		var ret string
		return ret
	}
	return *o.Secret
}
func (o *BankTransferCreateRequest) GetSecretOk() (*string, bool) {
	if o == nil || o.Secret == nil {
		return nil, false
	}
	return o.Secret, true
}
func (o *BankTransferCreateRequest) HasSecret() bool {
	if o != nil && o.Secret != nil {
		return true
	}
	return false
}
func (o *BankTransferCreateRequest) SetSecret(v string) {
	o.Secret = &v
}
func (o *BankTransferCreateRequest) GetIdempotencyKey() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.IdempotencyKey
}
func (o *BankTransferCreateRequest) GetIdempotencyKeyOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.IdempotencyKey, true
}
func (o *BankTransferCreateRequest) SetIdempotencyKey(v string) {
	o.IdempotencyKey = v
}
func (o *BankTransferCreateRequest) GetAccessToken() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.AccessToken
}
func (o *BankTransferCreateRequest) GetAccessTokenOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.AccessToken, true
}
func (o *BankTransferCreateRequest) SetAccessToken(v string) {
	o.AccessToken = v
}
func (o *BankTransferCreateRequest) GetAccountId() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.AccountId
}
func (o *BankTransferCreateRequest) GetAccountIdOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.AccountId, true
}
func (o *BankTransferCreateRequest) SetAccountId(v string) {
	o.AccountId = v
}
func (o *BankTransferCreateRequest) GetType() BankTransferType {
	if o == nil {
		var ret BankTransferType
		return ret
	}
	return o.Type
}
func (o *BankTransferCreateRequest) GetTypeOk() (*BankTransferType, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.Type, true
}
func (o *BankTransferCreateRequest) SetType(v BankTransferType) {
	o.Type = v
}
func (o *BankTransferCreateRequest) GetNetwork() BankTransferNetwork {
	if o == nil {
		var ret BankTransferNetwork
		return ret
	}
	return o.Network
}
func (o *BankTransferCreateRequest) GetNetworkOk() (*BankTransferNetwork, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.Network, true
}
func (o *BankTransferCreateRequest) SetNetwork(v BankTransferNetwork) {
	o.Network = v
}
func (o *BankTransferCreateRequest) GetAmount() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.Amount
}
func (o *BankTransferCreateRequest) GetAmountOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.Amount, true
}
func (o *BankTransferCreateRequest) SetAmount(v string) {
	o.Amount = v
}
func (o *BankTransferCreateRequest) GetIsoCurrencyCode() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.IsoCurrencyCode
}
func (o *BankTransferCreateRequest) GetIsoCurrencyCodeOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.IsoCurrencyCode, true
}
func (o *BankTransferCreateRequest) SetIsoCurrencyCode(v string) {
	o.IsoCurrencyCode = v
}
func (o *BankTransferCreateRequest) GetDescription() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.Description
}
func (o *BankTransferCreateRequest) GetDescriptionOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.Description, true
}
func (o *BankTransferCreateRequest) SetDescription(v string) {
	o.Description = v
}
func (o *BankTransferCreateRequest) GetAchClass() ACHClass {
	if o == nil || o.AchClass == nil {
		var ret ACHClass
		return ret
	}
	return *o.AchClass
}
func (o *BankTransferCreateRequest) GetAchClassOk() (*ACHClass, bool) {
	if o == nil || o.AchClass == nil {
		return nil, false
	}
	return o.AchClass, true
}
func (o *BankTransferCreateRequest) HasAchClass() bool {
	if o != nil && o.AchClass != nil {
		return true
	}
	return false
}
func (o *BankTransferCreateRequest) SetAchClass(v ACHClass) {
	o.AchClass = &v
}
func (o *BankTransferCreateRequest) GetUser() BankTransferUser {
	if o == nil {
		var ret BankTransferUser
		return ret
	}
	return o.User
}
func (o *BankTransferCreateRequest) GetUserOk() (*BankTransferUser, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.User, true
}
func (o *BankTransferCreateRequest) SetUser(v BankTransferUser) {
	o.User = v
}
func (o *BankTransferCreateRequest) GetCustomTag() string {
	if o == nil || o.CustomTag.Get() == nil {
		var ret string
		return ret
	}
	return *o.CustomTag.Get()
}
func (o *BankTransferCreateRequest) GetCustomTagOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return o.CustomTag.Get(), o.CustomTag.IsSet()
}
func (o *BankTransferCreateRequest) HasCustomTag() bool {
	if o != nil && o.CustomTag.IsSet() {
		return true
	}
	return false
}
func (o *BankTransferCreateRequest) SetCustomTag(v string) {
	o.CustomTag.Set(&v)
}
func (o *BankTransferCreateRequest) SetCustomTagNil() {
	o.CustomTag.Set(nil)
}
func (o *BankTransferCreateRequest) UnsetCustomTag() {
	o.CustomTag.Unset()
}
func (o *BankTransferCreateRequest) GetMetadata() map[string]string {
	if o == nil  {
		var ret map[string]string
		return ret
	}
	return o.Metadata
}
func (o *BankTransferCreateRequest) GetMetadataOk() (*map[string]string, bool) {
	if o == nil || o.Metadata == nil {
		return nil, false
	}
	return &o.Metadata, true
}