func (m *Withdrawal) Validate(formats strfmt.Registry) error {
	var res []error
	if err := m.validateAddress(formats); err != nil {
		res = append(res, err)
	}
	if err := m.validateAmount(formats); err != nil {
		res = append(res, err)
	}
	if err := m.validateConfirmedTimestamp(formats); err != nil {
		res = append(res, err)
	}
	if err := m.validateCreatedTimestamp(formats); err != nil {
		res = append(res, err)
	}
	if err := m.validateCurrency(formats); err != nil {
		res = append(res, err)
	}
	if err := m.validateFee(formats); err != nil {
		res = append(res, err)
	}
	if err := m.validateState(formats); err != nil {
		res = append(res, err)
	}
	if err := m.validateTransactionID(formats); err != nil {
		res = append(res, err)
	}
	if err := m.validateUpdatedTimestamp(formats); err != nil {
		res = append(res, err)
	}
	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}
Validate validates this withdrawal
package models
import (
	strfmt "github.com/go-openapi/strfmt"
	"github.com/go-openapi/errors"
	"github.com/go-openapi/swag"
	"github.com/go-openapi/validate"
)
type Withdrawal struct {
	Address CurrencyAddress `json:"address"`
	Amount CurrencyAmount `json:"amount"`
	ConfirmedTimestamp *int64 `json:"confirmed_timestamp"`
	CreatedTimestamp Timestamp `json:"created_timestamp,omitempty"`
	Currency Currency `json:"currency"`
	Fee Fee `json:"fee,omitempty"`
	ID int64 `json:"id,omitempty"`
	Priority float64 `json:"priority,omitempty"`
	State WithdrawalState `json:"state"`
	TransactionID CurrencyTransactionID `json:"transaction_id"`
	UpdatedTimestamp Timestamp `json:"updated_timestamp"`
}