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

package fleets

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

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

/*
DeleteFleetsFleetIDMembersMemberID kicks fleet member

Kick a fleet member

---
Alternate route: `/v1/fleets/{fleet_id}/members/{member_id}/`

Alternate route: `/legacy/fleets/{fleet_id}/members/{member_id}/`

Alternate route: `/dev/fleets/{fleet_id}/members/{member_id}/`

*/
func (a *Client) DeleteFleetsFleetIDMembersMemberID(params *DeleteFleetsFleetIDMembersMemberIDParams, authInfo runtime.ClientAuthInfoWriter) (*DeleteFleetsFleetIDMembersMemberIDNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewDeleteFleetsFleetIDMembersMemberIDParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "delete_fleets_fleet_id_members_member_id",
		Method:             "DELETE",
		PathPattern:        "/fleets/{fleet_id}/members/{member_id}/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &DeleteFleetsFleetIDMembersMemberIDReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*DeleteFleetsFleetIDMembersMemberIDNoContent), nil

}

/*
DeleteFleetsFleetIDSquadsSquadID deletes fleet squad

Delete a fleet squad, only empty squads can be deleted

---
Alternate route: `/v1/fleets/{fleet_id}/squads/{squad_id}/`

Alternate route: `/legacy/fleets/{fleet_id}/squads/{squad_id}/`

Alternate route: `/dev/fleets/{fleet_id}/squads/{squad_id}/`

*/
func (a *Client) DeleteFleetsFleetIDSquadsSquadID(params *DeleteFleetsFleetIDSquadsSquadIDParams, authInfo runtime.ClientAuthInfoWriter) (*DeleteFleetsFleetIDSquadsSquadIDNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewDeleteFleetsFleetIDSquadsSquadIDParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "delete_fleets_fleet_id_squads_squad_id",
		Method:             "DELETE",
		PathPattern:        "/fleets/{fleet_id}/squads/{squad_id}/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &DeleteFleetsFleetIDSquadsSquadIDReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*DeleteFleetsFleetIDSquadsSquadIDNoContent), nil

}

/*
DeleteFleetsFleetIDWingsWingID deletes fleet wing

Delete a fleet wing, only empty wings can be deleted. The wing may contain squads, but the squads must be empty

---
Alternate route: `/v1/fleets/{fleet_id}/wings/{wing_id}/`

Alternate route: `/legacy/fleets/{fleet_id}/wings/{wing_id}/`

Alternate route: `/dev/fleets/{fleet_id}/wings/{wing_id}/`

*/
func (a *Client) DeleteFleetsFleetIDWingsWingID(params *DeleteFleetsFleetIDWingsWingIDParams, authInfo runtime.ClientAuthInfoWriter) (*DeleteFleetsFleetIDWingsWingIDNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewDeleteFleetsFleetIDWingsWingIDParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "delete_fleets_fleet_id_wings_wing_id",
		Method:             "DELETE",
		PathPattern:        "/fleets/{fleet_id}/wings/{wing_id}/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &DeleteFleetsFleetIDWingsWingIDReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*DeleteFleetsFleetIDWingsWingIDNoContent), nil

}

/*
GetFleetsFleetID gets fleet information

Return details about a fleet

---
Alternate route: `/v1/fleets/{fleet_id}/`

Alternate route: `/legacy/fleets/{fleet_id}/`

Alternate route: `/dev/fleets/{fleet_id}/`

---
This route is cached for up to 5 seconds
*/
func (a *Client) GetFleetsFleetID(params *GetFleetsFleetIDParams, authInfo runtime.ClientAuthInfoWriter) (*GetFleetsFleetIDOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetFleetsFleetIDParams()
	}

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

}

/*
GetFleetsFleetIDMembers gets fleet members

Return information about fleet members

---
Alternate route: `/v1/fleets/{fleet_id}/members/`

Alternate route: `/legacy/fleets/{fleet_id}/members/`

Alternate route: `/dev/fleets/{fleet_id}/members/`

---
This route is cached for up to 5 seconds
*/
func (a *Client) GetFleetsFleetIDMembers(params *GetFleetsFleetIDMembersParams, authInfo runtime.ClientAuthInfoWriter) (*GetFleetsFleetIDMembersOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetFleetsFleetIDMembersParams()
	}

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

}

/*
GetFleetsFleetIDWings gets fleet wings

Return information about wings in a fleet

---
Alternate route: `/v1/fleets/{fleet_id}/wings/`

Alternate route: `/legacy/fleets/{fleet_id}/wings/`

Alternate route: `/dev/fleets/{fleet_id}/wings/`

---
This route is cached for up to 5 seconds
*/
func (a *Client) GetFleetsFleetIDWings(params *GetFleetsFleetIDWingsParams, authInfo runtime.ClientAuthInfoWriter) (*GetFleetsFleetIDWingsOK, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewGetFleetsFleetIDWingsParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "get_fleets_fleet_id_wings",
		Method:             "GET",
		PathPattern:        "/fleets/{fleet_id}/wings/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetFleetsFleetIDWingsReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*GetFleetsFleetIDWingsOK), nil

}

/*
PostFleetsFleetIDMembers creates fleet invitation

Invite a character into the fleet, if a character has a CSPA charge set, it is not possible to invite them to the fleet using ESI

---
Alternate route: `/v1/fleets/{fleet_id}/members/`

Alternate route: `/legacy/fleets/{fleet_id}/members/`

Alternate route: `/dev/fleets/{fleet_id}/members/`

*/
func (a *Client) PostFleetsFleetIDMembers(params *PostFleetsFleetIDMembersParams, authInfo runtime.ClientAuthInfoWriter) (*PostFleetsFleetIDMembersNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPostFleetsFleetIDMembersParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "post_fleets_fleet_id_members",
		Method:             "POST",
		PathPattern:        "/fleets/{fleet_id}/members/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PostFleetsFleetIDMembersReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*PostFleetsFleetIDMembersNoContent), nil

}

/*
PostFleetsFleetIDWings creates fleet wing

Create a new wing in a fleet

---
Alternate route: `/v1/fleets/{fleet_id}/wings/`

Alternate route: `/legacy/fleets/{fleet_id}/wings/`

Alternate route: `/dev/fleets/{fleet_id}/wings/`

*/
func (a *Client) PostFleetsFleetIDWings(params *PostFleetsFleetIDWingsParams, authInfo runtime.ClientAuthInfoWriter) (*PostFleetsFleetIDWingsCreated, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPostFleetsFleetIDWingsParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "post_fleets_fleet_id_wings",
		Method:             "POST",
		PathPattern:        "/fleets/{fleet_id}/wings/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PostFleetsFleetIDWingsReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*PostFleetsFleetIDWingsCreated), nil

}

/*
PostFleetsFleetIDWingsWingIDSquads creates fleet squad

Create a new squad in a fleet

---
Alternate route: `/v1/fleets/{fleet_id}/wings/{wing_id}/squads/`

Alternate route: `/legacy/fleets/{fleet_id}/wings/{wing_id}/squads/`

Alternate route: `/dev/fleets/{fleet_id}/wings/{wing_id}/squads/`

*/
func (a *Client) PostFleetsFleetIDWingsWingIDSquads(params *PostFleetsFleetIDWingsWingIDSquadsParams, authInfo runtime.ClientAuthInfoWriter) (*PostFleetsFleetIDWingsWingIDSquadsCreated, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPostFleetsFleetIDWingsWingIDSquadsParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "post_fleets_fleet_id_wings_wing_id_squads",
		Method:             "POST",
		PathPattern:        "/fleets/{fleet_id}/wings/{wing_id}/squads/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PostFleetsFleetIDWingsWingIDSquadsReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*PostFleetsFleetIDWingsWingIDSquadsCreated), nil

}

/*
PutFleetsFleetID updates fleet

Update settings about a fleet

---
Alternate route: `/v1/fleets/{fleet_id}/`

Alternate route: `/legacy/fleets/{fleet_id}/`

Alternate route: `/dev/fleets/{fleet_id}/`

*/
func (a *Client) PutFleetsFleetID(params *PutFleetsFleetIDParams, authInfo runtime.ClientAuthInfoWriter) (*PutFleetsFleetIDNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPutFleetsFleetIDParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "put_fleets_fleet_id",
		Method:             "PUT",
		PathPattern:        "/fleets/{fleet_id}/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PutFleetsFleetIDReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*PutFleetsFleetIDNoContent), nil

}

/*
PutFleetsFleetIDMembersMemberID moves fleet member

Move a fleet member around

---
Alternate route: `/v1/fleets/{fleet_id}/members/{member_id}/`

Alternate route: `/legacy/fleets/{fleet_id}/members/{member_id}/`

Alternate route: `/dev/fleets/{fleet_id}/members/{member_id}/`

*/
func (a *Client) PutFleetsFleetIDMembersMemberID(params *PutFleetsFleetIDMembersMemberIDParams, authInfo runtime.ClientAuthInfoWriter) (*PutFleetsFleetIDMembersMemberIDNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPutFleetsFleetIDMembersMemberIDParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "put_fleets_fleet_id_members_member_id",
		Method:             "PUT",
		PathPattern:        "/fleets/{fleet_id}/members/{member_id}/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PutFleetsFleetIDMembersMemberIDReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*PutFleetsFleetIDMembersMemberIDNoContent), nil

}

/*
PutFleetsFleetIDSquadsSquadID renames fleet squad

Rename a fleet squad

---
Alternate route: `/v1/fleets/{fleet_id}/squads/{squad_id}/`

Alternate route: `/legacy/fleets/{fleet_id}/squads/{squad_id}/`

Alternate route: `/dev/fleets/{fleet_id}/squads/{squad_id}/`

*/
func (a *Client) PutFleetsFleetIDSquadsSquadID(params *PutFleetsFleetIDSquadsSquadIDParams, authInfo runtime.ClientAuthInfoWriter) (*PutFleetsFleetIDSquadsSquadIDNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPutFleetsFleetIDSquadsSquadIDParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "put_fleets_fleet_id_squads_squad_id",
		Method:             "PUT",
		PathPattern:        "/fleets/{fleet_id}/squads/{squad_id}/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PutFleetsFleetIDSquadsSquadIDReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*PutFleetsFleetIDSquadsSquadIDNoContent), nil

}

/*
PutFleetsFleetIDWingsWingID renames fleet wing

Rename a fleet wing

---
Alternate route: `/v1/fleets/{fleet_id}/wings/{wing_id}/`

Alternate route: `/legacy/fleets/{fleet_id}/wings/{wing_id}/`

Alternate route: `/dev/fleets/{fleet_id}/wings/{wing_id}/`

*/
func (a *Client) PutFleetsFleetIDWingsWingID(params *PutFleetsFleetIDWingsWingIDParams, authInfo runtime.ClientAuthInfoWriter) (*PutFleetsFleetIDWingsWingIDNoContent, error) {
	// TODO: Validate the params before sending
	if params == nil {
		params = NewPutFleetsFleetIDWingsWingIDParams()
	}

	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "put_fleets_fleet_id_wings_wing_id",
		Method:             "PUT",
		PathPattern:        "/fleets/{fleet_id}/wings/{wing_id}/",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{""},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PutFleetsFleetIDWingsWingIDReader{formats: a.formats},
		AuthInfo:           authInfo,
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	return result.(*PutFleetsFleetIDWingsWingIDNoContent), nil

}

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