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

package corporation

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

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

/*
GetCorporationsCorporationID gets corporation information

Public information about a corporation

---
Alternate route: `/v3/corporations/{corporation_id}/`

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCorporationsCorporationID(params *GetCorporationsCorporationIDParams) (*GetCorporationsCorporationIDOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCorporationsCorporationIDParams()
	}

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

}

/*
GetCorporationsCorporationIDAlliancehistory gets alliance history

Get a list of all the alliances a corporation has been a member of

---
Alternate route: `/v2/corporations/{corporation_id}/alliancehistory/`

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

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCorporationsCorporationIDAlliancehistory(params *GetCorporationsCorporationIDAlliancehistoryParams) (*GetCorporationsCorporationIDAlliancehistoryOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCorporationsCorporationIDAlliancehistoryParams()
	}

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

}

/*
GetCorporationsCorporationIDDivisions gets corporation divisions

Return corporation hangar and wallet division names, only show if a division is not using the default name

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

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

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

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

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

}

/*
GetCorporationsCorporationIDIcons gets corporation icon

Get the icon urls for a corporation

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

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

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

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCorporationsCorporationIDIcons(params *GetCorporationsCorporationIDIconsParams) (*GetCorporationsCorporationIDIconsOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCorporationsCorporationIDIconsParams()
	}

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

}

/*
GetCorporationsCorporationIDMembers gets corporation members

Read the current list of members if the calling character is a member.

---
Alternate route: `/v2/corporations/{corporation_id}/members/`

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

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

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

}

/*
GetCorporationsCorporationIDMembersLimit gets corporation member limit

Return a corporation's member limit, not including CEO himself

---
Alternate route: `/v1/corporations/{corporation_id}/members/limit/`

Alternate route: `/legacy/corporations/{corporation_id}/members/limit/`

Alternate route: `/dev/corporations/{corporation_id}/members/limit/`

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

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

}

/*
GetCorporationsCorporationIDMembertracking tracks corporation members

Returns additional information about a corporation's members which helps tracking their activities

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

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

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

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

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

}

/*
GetCorporationsCorporationIDRoles gets corporation member roles

Return the roles of all members if the character has the personnel manager role or any grantable role.

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

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

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

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

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

}

/*
GetCorporationsCorporationIDStructures gets corporation structures

Get a list of corporation structures

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

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

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

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

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

}

/*
GetCorporationsNames gets corporation names

Resolve a set of corporation IDs to corporation names

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

Alternate route: `/legacy/corporations/names/`

---
This route is cached for up to 3600 seconds
*/
func (a *Client) GetCorporationsNames(params *GetCorporationsNamesParams) (*GetCorporationsNamesOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCorporationsNamesParams()
	}

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

}

/*
GetCorporationsNpccorps gets npc corporations

Get a list of npc corporations

---
Alternate route: `/v1/corporations/npccorps/`

Alternate route: `/legacy/corporations/npccorps/`

Alternate route: `/dev/corporations/npccorps/`

---
This route expires daily at 11:05
*/
func (a *Client) GetCorporationsNpccorps(params *GetCorporationsNpccorpsParams) (*GetCorporationsNpccorpsOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetCorporationsNpccorpsParams()
	}

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

}

/*
PutCorporationsCorporationIDStructuresStructureID updates structure vulnerability schedule

Update the vulnerability window schedule of a corporation structure

---
Alternate route: `/v1/corporations/{corporation_id}/structures/{structure_id}/`

Alternate route: `/legacy/corporations/{corporation_id}/structures/{structure_id}/`

Alternate route: `/dev/corporations/{corporation_id}/structures/{structure_id}/`

*/
func (a *Client) PutCorporationsCorporationIDStructuresStructureID(params *PutCorporationsCorporationIDStructuresStructureIDParams, authInfo runtime.ClientAuthInfoWriter) (*PutCorporationsCorporationIDStructuresStructureIDNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPutCorporationsCorporationIDStructuresStructureIDParams()
	}

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

}

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