func (o *PaymentInitiationPaymentGetResponse) UnsetRefundDetails() {
	o.RefundDetails.Unset()
}
UnsetRefundDetails ensures that no value is present for RefundDetails, not even an explicit nil
package plaid
import (
	"encoding/json"
	"time"
)
type PaymentInitiationPaymentGetResponse struct {
	PaymentId string `json:"payment_id"`
	Amount PaymentAmount `json:"amount"`
	Status string `json:"status"`
	RecipientId string `json:"recipient_id"`
	Reference string `json:"reference"`
	AdjustedReference NullableString `json:"adjusted_reference,omitempty"`
	LastStatusUpdate time.Time `json:"last_status_update"`
	Schedule NullableExternalPaymentScheduleGet `json:"schedule,omitempty"`
	RefundDetails NullableExternalPaymentRefundDetails `json:"refund_details,omitempty"`
	Bacs NullableSenderBACSNullable `json:"bacs"`
	Iban NullableString `json:"iban"`
	InitiatedRefunds *[]PaymentInitiationRefund `json:"initiated_refunds,omitempty"`
	EmiAccountId NullableString `json:"emi_account_id,omitempty"`
	RequestId string `json:"request_id"`
	AdditionalProperties map[string]interface{}
}
type _PaymentInitiationPaymentGetResponse PaymentInitiationPaymentGetResponse
func NewPaymentInitiationPaymentGetResponse(paymentId string, amount PaymentAmount, status string, recipientId string, reference string, lastStatusUpdate time.Time, bacs NullableSenderBACSNullable, iban NullableString, requestId string) *PaymentInitiationPaymentGetResponse {
	this := PaymentInitiationPaymentGetResponse{}
	this.PaymentId = paymentId
	this.Amount = amount
	this.Status = status
	this.RecipientId = recipientId
	this.Reference = reference
	this.LastStatusUpdate = lastStatusUpdate
	this.Bacs = bacs
	this.Iban = iban
	this.RequestId = requestId
	return &this
}
func NewPaymentInitiationPaymentGetResponseWithDefaults() *PaymentInitiationPaymentGetResponse {
	this := PaymentInitiationPaymentGetResponse{}
	return &this
}
func (o *PaymentInitiationPaymentGetResponse) GetPaymentId() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.PaymentId
}
func (o *PaymentInitiationPaymentGetResponse) GetPaymentIdOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.PaymentId, true
}
func (o *PaymentInitiationPaymentGetResponse) SetPaymentId(v string) {
	o.PaymentId = v
}
func (o *PaymentInitiationPaymentGetResponse) GetAmount() PaymentAmount {
	if o == nil {
		var ret PaymentAmount
		return ret
	}
	return o.Amount
}
func (o *PaymentInitiationPaymentGetResponse) GetAmountOk() (*PaymentAmount, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.Amount, true
}
func (o *PaymentInitiationPaymentGetResponse) SetAmount(v PaymentAmount) {
	o.Amount = v
}
func (o *PaymentInitiationPaymentGetResponse) GetStatus() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.Status
}
func (o *PaymentInitiationPaymentGetResponse) GetStatusOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.Status, true
}
func (o *PaymentInitiationPaymentGetResponse) SetStatus(v string) {
	o.Status = v
}
func (o *PaymentInitiationPaymentGetResponse) GetRecipientId() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.RecipientId
}
func (o *PaymentInitiationPaymentGetResponse) GetRecipientIdOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.RecipientId, true
}
func (o *PaymentInitiationPaymentGetResponse) SetRecipientId(v string) {
	o.RecipientId = v
}
func (o *PaymentInitiationPaymentGetResponse) GetReference() string {
	if o == nil {
		var ret string
		return ret
	}
	return o.Reference
}
func (o *PaymentInitiationPaymentGetResponse) GetReferenceOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.Reference, true
}
func (o *PaymentInitiationPaymentGetResponse) SetReference(v string) {
	o.Reference = v
}
func (o *PaymentInitiationPaymentGetResponse) GetAdjustedReference() string {
	if o == nil || o.AdjustedReference.Get() == nil {
		var ret string
		return ret
	}
	return *o.AdjustedReference.Get()
}
func (o *PaymentInitiationPaymentGetResponse) GetAdjustedReferenceOk() (*string, bool) {
	if o == nil  {
		return nil, false
	}
	return o.AdjustedReference.Get(), o.AdjustedReference.IsSet()
}
func (o *PaymentInitiationPaymentGetResponse) HasAdjustedReference() bool {
	if o != nil && o.AdjustedReference.IsSet() {
		return true
	}
	return false
}
func (o *PaymentInitiationPaymentGetResponse) SetAdjustedReference(v string) {
	o.AdjustedReference.Set(&v)
}
func (o *PaymentInitiationPaymentGetResponse) SetAdjustedReferenceNil() {
	o.AdjustedReference.Set(nil)
}
func (o *PaymentInitiationPaymentGetResponse) UnsetAdjustedReference() {
	o.AdjustedReference.Unset()
}
func (o *PaymentInitiationPaymentGetResponse) GetLastStatusUpdate() time.Time {
	if o == nil {
		var ret time.Time
		return ret
	}
	return o.LastStatusUpdate
}
func (o *PaymentInitiationPaymentGetResponse) GetLastStatusUpdateOk() (*time.Time, bool) {
	if o == nil  {
		return nil, false
	}
	return &o.LastStatusUpdate, true
}
func (o *PaymentInitiationPaymentGetResponse) SetLastStatusUpdate(v time.Time) {
	o.LastStatusUpdate = v
}
func (o *PaymentInitiationPaymentGetResponse) GetSchedule() ExternalPaymentScheduleGet {
	if o == nil || o.Schedule.Get() == nil {
		var ret ExternalPaymentScheduleGet
		return ret
	}
	return *o.Schedule.Get()
}
func (o *PaymentInitiationPaymentGetResponse) GetScheduleOk() (*ExternalPaymentScheduleGet, bool) {
	if o == nil  {
		return nil, false
	}
	return o.Schedule.Get(), o.Schedule.IsSet()
}
func (o *PaymentInitiationPaymentGetResponse) HasSchedule() bool {
	if o != nil && o.Schedule.IsSet() {
		return true
	}
	return false
}
func (o *PaymentInitiationPaymentGetResponse) SetSchedule(v ExternalPaymentScheduleGet) {
	o.Schedule.Set(&v)
}
func (o *PaymentInitiationPaymentGetResponse) SetScheduleNil() {
	o.Schedule.Set(nil)
}
func (o *PaymentInitiationPaymentGetResponse) UnsetSchedule() {
	o.Schedule.Unset()
}
func (o *PaymentInitiationPaymentGetResponse) GetRefundDetails() ExternalPaymentRefundDetails {
	if o == nil || o.RefundDetails.Get() == nil {
		var ret ExternalPaymentRefundDetails
		return ret
	}
	return *o.RefundDetails.Get()
}
func (o *PaymentInitiationPaymentGetResponse) GetRefundDetailsOk() (*ExternalPaymentRefundDetails, bool) {
	if o == nil  {
		return nil, false
	}
	return o.RefundDetails.Get(), o.RefundDetails.IsSet()
}
func (o *PaymentInitiationPaymentGetResponse) HasRefundDetails() bool {
	if o != nil && o.RefundDetails.IsSet() {
		return true
	}
	return false
}
func (o *PaymentInitiationPaymentGetResponse) SetRefundDetails(v ExternalPaymentRefundDetails) {
	o.RefundDetails.Set(&v)
}
func (o *PaymentInitiationPaymentGetResponse) SetRefundDetailsNil() {
	o.RefundDetails.Set(nil)
}