func (a *Client) PostDistributionDelegatorsDelegatorAddrRewards(params *PostDistributionDelegatorsDelegatorAddrRewardsParams) (*PostDistributionDelegatorsDelegatorAddrRewardsOK, error) {
	if params == nil {
		params = NewPostDistributionDelegatorsDelegatorAddrRewardsParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "PostDistributionDelegatorsDelegatorAddrRewards",
		Method:             "POST",
		PathPattern:        "/distribution/delegators/{delegatorAddr}/rewards",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &PostDistributionDelegatorsDelegatorAddrRewardsReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*PostDistributionDelegatorsDelegatorAddrRewardsOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for PostDistributionDelegatorsDelegatorAddrRewards: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
/*
PostDistributionDelegatorsDelegatorAddrRewards withdraws all the delegator s delegation rewards

Withdraw all the delegator's delegation rewards
package distribution
import (
	"fmt"
	"github.com/go-openapi/runtime"
	"github.com/go-openapi/strfmt"
)
func New(transport runtime.ClientTransport, formats strfmt.Registry) ClientService {
	return &Client{transport: transport, formats: formats}
}
type Client struct {
	transport runtime.ClientTransport
	formats   strfmt.Registry
}
type ClientService interface {
	GetDistributionCommunityPool(params *GetDistributionCommunityPoolParams) (*GetDistributionCommunityPoolOK, error)
	GetDistributionDelegatorsDelegatorAddrRewards(params *GetDistributionDelegatorsDelegatorAddrRewardsParams) (*GetDistributionDelegatorsDelegatorAddrRewardsOK, error)
	GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddr(params *GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddrParams) (*GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddrOK, error)
	GetDistributionDelegatorsDelegatorAddrWithdrawAddress(params *GetDistributionDelegatorsDelegatorAddrWithdrawAddressParams) (*GetDistributionDelegatorsDelegatorAddrWithdrawAddressOK, error)
	GetDistributionParameters(params *GetDistributionParametersParams) (*GetDistributionParametersOK, error)
	GetDistributionValidatorsValidatorAddr(params *GetDistributionValidatorsValidatorAddrParams) (*GetDistributionValidatorsValidatorAddrOK, error)
	GetDistributionValidatorsValidatorAddrOutstandingRewards(params *GetDistributionValidatorsValidatorAddrOutstandingRewardsParams) (*GetDistributionValidatorsValidatorAddrOutstandingRewardsOK, error)
	GetDistributionValidatorsValidatorAddrRewards(params *GetDistributionValidatorsValidatorAddrRewardsParams) (*GetDistributionValidatorsValidatorAddrRewardsOK, error)
	PostDistributionDelegatorsDelegatorAddrRewards(params *PostDistributionDelegatorsDelegatorAddrRewardsParams) (*PostDistributionDelegatorsDelegatorAddrRewardsOK, error)
	PostDistributionDelegatorsDelegatorAddrRewardsValidatorAddr(params *PostDistributionDelegatorsDelegatorAddrRewardsValidatorAddrParams) (*PostDistributionDelegatorsDelegatorAddrRewardsValidatorAddrOK, error)
	PostDistributionDelegatorsDelegatorAddrWithdrawAddress(params *PostDistributionDelegatorsDelegatorAddrWithdrawAddressParams) (*PostDistributionDelegatorsDelegatorAddrWithdrawAddressOK, error)
	PostDistributionValidatorsValidatorAddrRewards(params *PostDistributionValidatorsValidatorAddrRewardsParams) (*PostDistributionValidatorsValidatorAddrRewardsOK, error)
	SetTransport(transport runtime.ClientTransport)
}
func (a *Client) GetDistributionCommunityPool(params *GetDistributionCommunityPoolParams) (*GetDistributionCommunityPoolOK, error) {
	if params == nil {
		params = NewGetDistributionCommunityPoolParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetDistributionCommunityPool",
		Method:             "GET",
		PathPattern:        "/distribution/community_pool",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetDistributionCommunityPoolReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetDistributionCommunityPoolOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetDistributionCommunityPool: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetDistributionDelegatorsDelegatorAddrRewards(params *GetDistributionDelegatorsDelegatorAddrRewardsParams) (*GetDistributionDelegatorsDelegatorAddrRewardsOK, error) {
	if params == nil {
		params = NewGetDistributionDelegatorsDelegatorAddrRewardsParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetDistributionDelegatorsDelegatorAddrRewards",
		Method:             "GET",
		PathPattern:        "/distribution/delegators/{delegatorAddr}/rewards",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetDistributionDelegatorsDelegatorAddrRewardsReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetDistributionDelegatorsDelegatorAddrRewardsOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetDistributionDelegatorsDelegatorAddrRewards: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddr(params *GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddrParams) (*GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddrOK, error) {
	if params == nil {
		params = NewGetDistributionDelegatorsDelegatorAddrRewardsValidatorAddrParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddr",
		Method:             "GET",
		PathPattern:        "/distribution/delegators/{delegatorAddr}/rewards/{validatorAddr}",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddrReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddrOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetDistributionDelegatorsDelegatorAddrRewardsValidatorAddr: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetDistributionDelegatorsDelegatorAddrWithdrawAddress(params *GetDistributionDelegatorsDelegatorAddrWithdrawAddressParams) (*GetDistributionDelegatorsDelegatorAddrWithdrawAddressOK, error) {
	if params == nil {
		params = NewGetDistributionDelegatorsDelegatorAddrWithdrawAddressParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetDistributionDelegatorsDelegatorAddrWithdrawAddress",
		Method:             "GET",
		PathPattern:        "/distribution/delegators/{delegatorAddr}/withdraw_address",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetDistributionDelegatorsDelegatorAddrWithdrawAddressReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetDistributionDelegatorsDelegatorAddrWithdrawAddressOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetDistributionDelegatorsDelegatorAddrWithdrawAddress: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetDistributionParameters(params *GetDistributionParametersParams) (*GetDistributionParametersOK, error) {
	if params == nil {
		params = NewGetDistributionParametersParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetDistributionParameters",
		Method:             "GET",
		PathPattern:        "/distribution/parameters",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetDistributionParametersReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetDistributionParametersOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetDistributionParameters: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetDistributionValidatorsValidatorAddr(params *GetDistributionValidatorsValidatorAddrParams) (*GetDistributionValidatorsValidatorAddrOK, error) {
	if params == nil {
		params = NewGetDistributionValidatorsValidatorAddrParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetDistributionValidatorsValidatorAddr",
		Method:             "GET",
		PathPattern:        "/distribution/validators/{validatorAddr}",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetDistributionValidatorsValidatorAddrReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetDistributionValidatorsValidatorAddrOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetDistributionValidatorsValidatorAddr: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetDistributionValidatorsValidatorAddrOutstandingRewards(params *GetDistributionValidatorsValidatorAddrOutstandingRewardsParams) (*GetDistributionValidatorsValidatorAddrOutstandingRewardsOK, error) {
	if params == nil {
		params = NewGetDistributionValidatorsValidatorAddrOutstandingRewardsParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetDistributionValidatorsValidatorAddrOutstandingRewards",
		Method:             "GET",
		PathPattern:        "/distribution/validators/{validatorAddr}/outstanding_rewards",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetDistributionValidatorsValidatorAddrOutstandingRewardsReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetDistributionValidatorsValidatorAddrOutstandingRewardsOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetDistributionValidatorsValidatorAddrOutstandingRewards: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetDistributionValidatorsValidatorAddrRewards(params *GetDistributionValidatorsValidatorAddrRewardsParams) (*GetDistributionValidatorsValidatorAddrRewardsOK, error) {
	if params == nil {
		params = NewGetDistributionValidatorsValidatorAddrRewardsParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetDistributionValidatorsValidatorAddrRewards",
		Method:             "GET",
		PathPattern:        "/distribution/validators/{validatorAddr}/rewards",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetDistributionValidatorsValidatorAddrRewardsReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetDistributionValidatorsValidatorAddrRewardsOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetDistributionValidatorsValidatorAddrRewards: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}