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

// All Code Copyright(c) 2018-2020 by Taxnexus, Inc.
// All rights reserved worldwide.
// Proprietary product; unlicensed use is not allowed

package eft

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

import (
	"fmt"
	"io"

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

	"github.com/taxnexus/go/lib/api/ops/ops_models"
)

// GetEftsReader is a Reader for the GetEfts structure.
type GetEftsReader struct {
	formats strfmt.Registry
}

// ReadResponse reads a server response into the received o.
func (o *GetEftsReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) {
	switch response.Code() {
	case 200:
		result := NewGetEftsOK()
		if err := result.readResponse(response, consumer, o.formats); err != nil {
			return nil, err
		}
		return result, nil
	case 401:
		result := NewGetEftsUnauthorized()
		if err := result.readResponse(response, consumer, o.formats); err != nil {
			return nil, err
		}
		return nil, result
	case 403:
		result := NewGetEftsForbidden()
		if err := result.readResponse(response, consumer, o.formats); err != nil {
			return nil, err
		}
		return nil, result
	case 404:
		result := NewGetEftsNotFound()
		if err := result.readResponse(response, consumer, o.formats); err != nil {
			return nil, err
		}
		return nil, result
	case 422:
		result := NewGetEftsUnprocessableEntity()
		if err := result.readResponse(response, consumer, o.formats); err != nil {
			return nil, err
		}
		return nil, result
	case 500:
		result := NewGetEftsInternalServerError()
		if err := result.readResponse(response, consumer, o.formats); err != nil {
			return nil, err
		}
		return nil, result

	default:
		return nil, runtime.NewAPIError("unknown error", response, response.Code())
	}
}

// NewGetEftsOK creates a GetEftsOK with default headers values
func NewGetEftsOK() *GetEftsOK {
	return &GetEftsOK{}
}

/*GetEftsOK handles this case with default header values.

Taxnexus Response with EFT objects
*/
type GetEftsOK struct {
	AccessControlAllowOrigin string

	CacheControl string

	Payload *ops_models.EftResponse
}

func (o *GetEftsOK) Error() string {
	return fmt.Sprintf("[GET /efts][%d] getEftsOK  %+v", 200, o.Payload)
}

func (o *GetEftsOK) GetPayload() *ops_models.EftResponse {
	return o.Payload
}

func (o *GetEftsOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {

	// response header Access-Control-Allow-Origin
	o.AccessControlAllowOrigin = response.GetHeader("Access-Control-Allow-Origin")

	// response header Cache-Control
	o.CacheControl = response.GetHeader("Cache-Control")

	o.Payload = new(ops_models.EftResponse)

	// response payload
	if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
		return err
	}

	return nil
}

// NewGetEftsUnauthorized creates a GetEftsUnauthorized with default headers values
func NewGetEftsUnauthorized() *GetEftsUnauthorized {
	return &GetEftsUnauthorized{}
}

/*GetEftsUnauthorized handles this case with default header values.

Access unauthorized, invalid API-KEY was used
*/
type GetEftsUnauthorized struct {
	AccessControlAllowOrigin string

	Payload *ops_models.Error
}

func (o *GetEftsUnauthorized) Error() string {
	return fmt.Sprintf("[GET /efts][%d] getEftsUnauthorized  %+v", 401, o.Payload)
}

func (o *GetEftsUnauthorized) GetPayload() *ops_models.Error {
	return o.Payload
}

func (o *GetEftsUnauthorized) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {

	// response header Access-Control-Allow-Origin
	o.AccessControlAllowOrigin = response.GetHeader("Access-Control-Allow-Origin")

	o.Payload = new(ops_models.Error)

	// response payload
	if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
		return err
	}

	return nil
}

// NewGetEftsForbidden creates a GetEftsForbidden with default headers values
func NewGetEftsForbidden() *GetEftsForbidden {
	return &GetEftsForbidden{}
}

/*GetEftsForbidden handles this case with default header values.

Access forbidden, account lacks access
*/
type GetEftsForbidden struct {
	AccessControlAllowOrigin string

	Payload *ops_models.Error
}

func (o *GetEftsForbidden) Error() string {
	return fmt.Sprintf("[GET /efts][%d] getEftsForbidden  %+v", 403, o.Payload)
}

func (o *GetEftsForbidden) GetPayload() *ops_models.Error {
	return o.Payload
}

func (o *GetEftsForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {

	// response header Access-Control-Allow-Origin
	o.AccessControlAllowOrigin = response.GetHeader("Access-Control-Allow-Origin")

	o.Payload = new(ops_models.Error)

	// response payload
	if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
		return err
	}

	return nil
}

// NewGetEftsNotFound creates a GetEftsNotFound with default headers values
func NewGetEftsNotFound() *GetEftsNotFound {
	return &GetEftsNotFound{}
}

/*GetEftsNotFound handles this case with default header values.

Resource was not found
*/
type GetEftsNotFound struct {
	AccessControlAllowOrigin string

	Payload *ops_models.Error
}

func (o *GetEftsNotFound) Error() string {
	return fmt.Sprintf("[GET /efts][%d] getEftsNotFound  %+v", 404, o.Payload)
}

func (o *GetEftsNotFound) GetPayload() *ops_models.Error {
	return o.Payload
}

func (o *GetEftsNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {

	// response header Access-Control-Allow-Origin
	o.AccessControlAllowOrigin = response.GetHeader("Access-Control-Allow-Origin")

	o.Payload = new(ops_models.Error)

	// response payload
	if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
		return err
	}

	return nil
}

// NewGetEftsUnprocessableEntity creates a GetEftsUnprocessableEntity with default headers values
func NewGetEftsUnprocessableEntity() *GetEftsUnprocessableEntity {
	return &GetEftsUnprocessableEntity{}
}

/*GetEftsUnprocessableEntity handles this case with default header values.

Unprocessable Entity, likely a bad parameter
*/
type GetEftsUnprocessableEntity struct {
	AccessControlAllowOrigin string

	Payload *ops_models.Error
}

func (o *GetEftsUnprocessableEntity) Error() string {
	return fmt.Sprintf("[GET /efts][%d] getEftsUnprocessableEntity  %+v", 422, o.Payload)
}

func (o *GetEftsUnprocessableEntity) GetPayload() *ops_models.Error {
	return o.Payload
}

func (o *GetEftsUnprocessableEntity) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {

	// response header Access-Control-Allow-Origin
	o.AccessControlAllowOrigin = response.GetHeader("Access-Control-Allow-Origin")

	o.Payload = new(ops_models.Error)

	// response payload
	if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
		return err
	}

	return nil
}

// NewGetEftsInternalServerError creates a GetEftsInternalServerError with default headers values
func NewGetEftsInternalServerError() *GetEftsInternalServerError {
	return &GetEftsInternalServerError{}
}

/*GetEftsInternalServerError handles this case with default header values.

Server Internal Error
*/
type GetEftsInternalServerError struct {
	AccessControlAllowOrigin string

	Payload *ops_models.Error
}

func (o *GetEftsInternalServerError) Error() string {
	return fmt.Sprintf("[GET /efts][%d] getEftsInternalServerError  %+v", 500, o.Payload)
}

func (o *GetEftsInternalServerError) GetPayload() *ops_models.Error {
	return o.Payload
}

func (o *GetEftsInternalServerError) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {

	// response header Access-Control-Allow-Origin
	o.AccessControlAllowOrigin = response.GetHeader("Access-Control-Allow-Origin")

	o.Payload = new(ops_models.Error)

	// response payload
	if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
		return err
	}

	return nil
}
