// Code generated by go-swagger; DO NOT EDIT.

package wallet

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"github.com/go-openapi/runtime"

	strfmt "github.com/go-openapi/strfmt"
)

// New creates a new wallet API client.
func New(transport runtime.ClientTransport, formats strfmt.Registry) *Client {
	return &Client{transport: transport, formats: formats}
}

/*
Client for wallet API
*/
type Client struct {
	transport runtime.ClientTransport
	formats   strfmt.Registry
}

/*
GetCharactersCharacterIDWallet gets a character s wallet balance

Returns a character's wallet balance

---
Alternate route: `/v1/characters/{character_id}/wallet/`

Alternate route: `/legacy/characters/{character_id}/wallet/`

Alternate route: `/dev/characters/{character_id}/wallet/`

---
This route is cached for up to 120 seconds
*/
func (a *Client) GetCharactersCharacterIDWallet(params *GetCharactersCharacterIDWalletParams, authInfo runtime.ClientAuthInfoWriter) (*GetCharactersCharacterIDWalletOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersCharacterIDWalletParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "get_characters_character_id_wallet",
		Method:             "GET",
		PathPattern:        "/characters/{character_id}/wallet/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetCharactersCharacterIDWalletReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*GetCharactersCharacterIDWalletOK), nil

}

/*
GetCharactersCharacterIDWalletJournal gets character wallet journal

Retrieve character wallet journal

---
Alternate route: `/v1/characters/{character_id}/wallet/journal/`

Alternate route: `/legacy/characters/{character_id}/wallet/journal/`

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCharactersCharacterIDWalletJournal(params *GetCharactersCharacterIDWalletJournalParams, authInfo runtime.ClientAuthInfoWriter) (*GetCharactersCharacterIDWalletJournalOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersCharacterIDWalletJournalParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "get_characters_character_id_wallet_journal",
		Method:             "GET",
		PathPattern:        "/characters/{character_id}/wallet/journal/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetCharactersCharacterIDWalletJournalReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*GetCharactersCharacterIDWalletJournalOK), nil

}

/*
GetCharactersCharacterIDWalletTransactions gets wallet transactions

Get wallet transactions of a character

---
Alternate route: `/v1/characters/{character_id}/wallet/transactions/`

Alternate route: `/legacy/characters/{character_id}/wallet/transactions/`

Alternate route: `/dev/characters/{character_id}/wallet/transactions/`

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCharactersCharacterIDWalletTransactions(params *GetCharactersCharacterIDWalletTransactionsParams, authInfo runtime.ClientAuthInfoWriter) (*GetCharactersCharacterIDWalletTransactionsOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersCharacterIDWalletTransactionsParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "get_characters_character_id_wallet_transactions",
		Method:             "GET",
		PathPattern:        "/characters/{character_id}/wallet/transactions/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetCharactersCharacterIDWalletTransactionsReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*GetCharactersCharacterIDWalletTransactionsOK), nil

}

/*
GetCorporationsCorporationIDWallets returns a corporation s wallet balance

Get a corporation's wallets

---
Alternate route: `/v1/corporations/{corporation_id}/wallets/`

Alternate route: `/legacy/corporations/{corporation_id}/wallets/`

Alternate route: `/dev/corporations/{corporation_id}/wallets/`

---
This route is cached for up to 300 seconds
*/
func (a *Client) GetCorporationsCorporationIDWallets(params *GetCorporationsCorporationIDWalletsParams, authInfo runtime.ClientAuthInfoWriter) (*GetCorporationsCorporationIDWalletsOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCorporationsCorporationIDWalletsParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "get_corporations_corporation_id_wallets",
		Method:             "GET",
		PathPattern:        "/corporations/{corporation_id}/wallets/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetCorporationsCorporationIDWalletsReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*GetCorporationsCorporationIDWalletsOK), nil

}

/*
GetCorporationsCorporationIDWalletsDivisionJournal gets corporation wallet journal

Retrieve corporation wallet journal

---
Alternate route: `/v1/corporations/{corporation_id}/wallets/{division}/journal/`

Alternate route: `/legacy/corporations/{corporation_id}/wallets/{division}/journal/`

Alternate route: `/dev/corporations/{corporation_id}/wallets/{division}/journal/`

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCorporationsCorporationIDWalletsDivisionJournal(params *GetCorporationsCorporationIDWalletsDivisionJournalParams, authInfo runtime.ClientAuthInfoWriter) (*GetCorporationsCorporationIDWalletsDivisionJournalOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCorporationsCorporationIDWalletsDivisionJournalParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "get_corporations_corporation_id_wallets_division_journal",
		Method:             "GET",
		PathPattern:        "/corporations/{corporation_id}/wallets/{division}/journal/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetCorporationsCorporationIDWalletsDivisionJournalReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*GetCorporationsCorporationIDWalletsDivisionJournalOK), nil

}

/*
GetCorporationsCorporationIDWalletsDivisionTransactions gets corporation wallet transactions

Get wallet transactions of a corporation

---
Alternate route: `/v1/corporations/{corporation_id}/wallets/{division}/transactions/`

Alternate route: `/legacy/corporations/{corporation_id}/wallets/{division}/transactions/`

Alternate route: `/dev/corporations/{corporation_id}/wallets/{division}/transactions/`

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCorporationsCorporationIDWalletsDivisionTransactions(params *GetCorporationsCorporationIDWalletsDivisionTransactionsParams, authInfo runtime.ClientAuthInfoWriter) (*GetCorporationsCorporationIDWalletsDivisionTransactionsOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCorporationsCorporationIDWalletsDivisionTransactionsParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "get_corporations_corporation_id_wallets_division_transactions",
		Method:             "GET",
		PathPattern:        "/corporations/{corporation_id}/wallets/{division}/transactions/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetCorporationsCorporationIDWalletsDivisionTransactionsReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*GetCorporationsCorporationIDWalletsDivisionTransactionsOK), nil

}

// SetTransport changes the transport on the client
func (a *Client) SetTransport(transport runtime.ClientTransport) {
	a.transport = transport
}
