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

package character

// 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 character API client.
func New(transport runtime.ClientTransport, formats strfmt.Registry) *Client {
	return &Client{transport: transport, formats: formats}
}

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

/*
GetCharactersCharacterID gets character s public information

Public information about a character

---
Alternate route: `/v4/characters/{character_id}/`

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

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCharactersCharacterID(params *GetCharactersCharacterIDParams) (*GetCharactersCharacterIDOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersCharacterIDParams()
	}

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

}

/*
GetCharactersCharacterIDAgentsResearch gets agents research

Return a list of agents research information for a character. The formula for finding the current research points with an agent is: currentPoints = remainderPoints + pointsPerDay * days(currentTime - researchStartDate)

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

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

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

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

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

}

/*
GetCharactersCharacterIDBlueprints gets blueprints

Return a list of blueprints the character has

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

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

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

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

}

/*
GetCharactersCharacterIDChatChannels gets chat channels

Return chat channels that a character is the owner or an operator of

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

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

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

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

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

}

/*
GetCharactersCharacterIDCorporationhistory gets corporation history

Get a list of all the corporations a character has been a member of

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

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

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

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCharactersCharacterIDCorporationhistory(params *GetCharactersCharacterIDCorporationhistoryParams) (*GetCharactersCharacterIDCorporationhistoryOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersCharacterIDCorporationhistoryParams()
	}

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

}

/*
GetCharactersCharacterIDFatigue gets jump fatigue

Return a character's jump activation and fatigue information

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

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

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

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

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

}

/*
GetCharactersCharacterIDMedals gets medals

Return a list of medals the character has

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

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

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

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

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

}

/*
GetCharactersCharacterIDNotifications gets character notifications

Return character notifications

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

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

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

---
This route is cached for up to 1800 seconds
*/
func (a *Client) GetCharactersCharacterIDNotifications(params *GetCharactersCharacterIDNotificationsParams, authInfo runtime.ClientAuthInfoWriter) (*GetCharactersCharacterIDNotificationsOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersCharacterIDNotificationsParams()
	}

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

}

/*
GetCharactersCharacterIDNotificationsContacts gets new contact notifications

Return notifications about having been added to someone's contact list

---
Alternate route: `/v1/characters/{character_id}/notifications/contacts/`

Alternate route: `/legacy/characters/{character_id}/notifications/contacts/`

Alternate route: `/dev/characters/{character_id}/notifications/contacts/`

---
This route is cached for up to 600 seconds
*/
func (a *Client) GetCharactersCharacterIDNotificationsContacts(params *GetCharactersCharacterIDNotificationsContactsParams, authInfo runtime.ClientAuthInfoWriter) (*GetCharactersCharacterIDNotificationsContactsOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersCharacterIDNotificationsContactsParams()
	}

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

}

/*
GetCharactersCharacterIDPortrait gets character portraits

Get portrait urls for a character

---
Alternate route: `/v2/characters/{character_id}/portrait/`

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

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCharactersCharacterIDPortrait(params *GetCharactersCharacterIDPortraitParams) (*GetCharactersCharacterIDPortraitOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersCharacterIDPortraitParams()
	}

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

}

/*
GetCharactersCharacterIDRoles gets character corporation roles

Returns a character's corporation roles

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

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

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

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

}

/*
GetCharactersCharacterIDStandings gets standings

Return character standings from agents, NPC corporations, and factions

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

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

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

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

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

}

/*
GetCharactersNames gets character names

Resolve a set of character IDs to character names

---
Alternate route: `/v1/characters/names/`

Alternate route: `/legacy/characters/names/`

Alternate route: `/dev/characters/names/`

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCharactersNames(params *GetCharactersNamesParams) (*GetCharactersNamesOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCharactersNamesParams()
	}

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

}

/*
PostCharactersAffiliation characters affiliation

Bulk lookup of character IDs to corporation, alliance and faction

---
Alternate route: `/v1/characters/affiliation/`

Alternate route: `/legacy/characters/affiliation/`

Alternate route: `/dev/characters/affiliation/`

---
This route is cached for up to 3600 seconds
*/
func (a *Client) PostCharactersAffiliation(params *PostCharactersAffiliationParams) (*PostCharactersAffiliationOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPostCharactersAffiliationParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "post_characters_affiliation",
		Method:             "POST",
		PathPattern:        "/characters/affiliation/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PostCharactersAffiliationReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*PostCharactersAffiliationOK), nil

}

/*
PostCharactersCharacterIDCspa calculates a c s p a charge cost

Takes a source character ID in the url and a set of target character ID's in the body, returns a CSPA charge cost

---
Alternate route: `/v3/characters/{character_id}/cspa/`

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

*/
func (a *Client) PostCharactersCharacterIDCspa(params *PostCharactersCharacterIDCspaParams, authInfo runtime.ClientAuthInfoWriter) (*PostCharactersCharacterIDCspaCreated, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPostCharactersCharacterIDCspaParams()
	}

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

}

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