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

package bootstrap

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

import (
	"context"
	"net/http"
	"time"

	"github.com/go-openapi/errors"
	"github.com/go-openapi/runtime"
	cr "github.com/go-openapi/runtime/client"
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// NewBootstrapGetBootstrapAgentsParams creates a new BootstrapGetBootstrapAgentsParams object,
// with the default timeout for this client.
//
// Default values are not hydrated, since defaults are normally applied by the API server side.
//
// To enforce default values in parameter, use SetDefaults or WithDefaults.
func NewBootstrapGetBootstrapAgentsParams() *BootstrapGetBootstrapAgentsParams {
	return &BootstrapGetBootstrapAgentsParams{
		timeout: cr.DefaultTimeout,
	}
}

// NewBootstrapGetBootstrapAgentsParamsWithTimeout creates a new BootstrapGetBootstrapAgentsParams object
// with the ability to set a timeout on a request.
func NewBootstrapGetBootstrapAgentsParamsWithTimeout(timeout time.Duration) *BootstrapGetBootstrapAgentsParams {
	return &BootstrapGetBootstrapAgentsParams{
		timeout: timeout,
	}
}

// NewBootstrapGetBootstrapAgentsParamsWithContext creates a new BootstrapGetBootstrapAgentsParams object
// with the ability to set a context for a request.
func NewBootstrapGetBootstrapAgentsParamsWithContext(ctx context.Context) *BootstrapGetBootstrapAgentsParams {
	return &BootstrapGetBootstrapAgentsParams{
		Context: ctx,
	}
}

// NewBootstrapGetBootstrapAgentsParamsWithHTTPClient creates a new BootstrapGetBootstrapAgentsParams object
// with the ability to set a custom HTTPClient for a request.
func NewBootstrapGetBootstrapAgentsParamsWithHTTPClient(client *http.Client) *BootstrapGetBootstrapAgentsParams {
	return &BootstrapGetBootstrapAgentsParams{
		HTTPClient: client,
	}
}

/* BootstrapGetBootstrapAgentsParams contains all the parameters to send to the API endpoint
   for the bootstrap get bootstrap agents operation.

   Typically these are written to a http.Request.
*/
type BootstrapGetBootstrapAgentsParams struct {

	// OptsID.
	OptsID *string

	// OptsAccount.
	OptsAccount *string

	// OptsBlueprintRef.
	OptsBlueprintRef *string

	// OptsClusterID.
	OptsClusterID *string

	// OptsCount.
	//
	// Format: int64
	OptsCount *string

	// OptsDeleted.
	OptsDeleted *bool

	/* OptsDisplayName.

	   displayName only used for update queries to set displayName (READONLY).
	*/
	OptsDisplayName *string

	// OptsExtended.
	OptsExtended *bool

	/* OptsGlobalScope.

	   globalScope sets partnerID,organizationID,projectID = 0.
	*/
	OptsGlobalScope *bool

	// OptsGroups.
	OptsGroups []string

	/* OptsIgnoreScopeDefault.

	     ignoreScopeDefault ignores default values for partnerID, organizationID and
	projectID.
	*/
	OptsIgnoreScopeDefault *bool

	// OptsIsSSOUser.
	OptsIsSSOUser *bool

	// OptsLimit.
	//
	// Format: int64
	OptsLimit *string

	/* OptsName.

	     name is unique ID of a resource along with (partnerID, organizationID,
	projectID).
	*/
	OptsName *string

	// OptsOffset.
	//
	// Format: int64
	OptsOffset *string

	// OptsOrder.
	OptsOrder *string

	// OptsOrderBy.
	OptsOrderBy *string

	// OptsOrganization.
	OptsOrganization *string

	// OptsPartner.
	OptsPartner *string

	// OptsProject.
	OptsProject *string

	// OptsPublishedVersion.
	OptsPublishedVersion *string

	/* OptsSelector.

	   selector is used to filter the labels of a resource.
	*/
	OptsSelector *string

	/* OptsURLScope.

	   urlScope is supposed to be passed in the URL as kind/HashID(value).
	*/
	OptsURLScope *string

	// OptsUsername.
	OptsUsername *string

	// TemplateScope.
	TemplateScope string

	timeout    time.Duration
	Context    context.Context
	HTTPClient *http.Client
}

// WithDefaults hydrates default values in the bootstrap get bootstrap agents params (not the query body).
//
// All values with no default are reset to their zero value.
func (o *BootstrapGetBootstrapAgentsParams) WithDefaults() *BootstrapGetBootstrapAgentsParams {
	o.SetDefaults()
	return o
}

// SetDefaults hydrates default values in the bootstrap get bootstrap agents params (not the query body).
//
// All values with no default are reset to their zero value.
func (o *BootstrapGetBootstrapAgentsParams) SetDefaults() {
	// no default values defined for this parameter
}

// WithTimeout adds the timeout to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithTimeout(timeout time.Duration) *BootstrapGetBootstrapAgentsParams {
	o.SetTimeout(timeout)
	return o
}

// SetTimeout adds the timeout to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetTimeout(timeout time.Duration) {
	o.timeout = timeout
}

// WithContext adds the context to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithContext(ctx context.Context) *BootstrapGetBootstrapAgentsParams {
	o.SetContext(ctx)
	return o
}

// SetContext adds the context to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetContext(ctx context.Context) {
	o.Context = ctx
}

// WithHTTPClient adds the HTTPClient to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithHTTPClient(client *http.Client) *BootstrapGetBootstrapAgentsParams {
	o.SetHTTPClient(client)
	return o
}

// SetHTTPClient adds the HTTPClient to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetHTTPClient(client *http.Client) {
	o.HTTPClient = client
}

// WithOptsID adds the optsID to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsID(optsID *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsID(optsID)
	return o
}

// SetOptsID adds the optsId to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsID(optsID *string) {
	o.OptsID = optsID
}

// WithOptsAccount adds the optsAccount to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsAccount(optsAccount *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsAccount(optsAccount)
	return o
}

// SetOptsAccount adds the optsAccount to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsAccount(optsAccount *string) {
	o.OptsAccount = optsAccount
}

// WithOptsBlueprintRef adds the optsBlueprintRef to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsBlueprintRef(optsBlueprintRef *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsBlueprintRef(optsBlueprintRef)
	return o
}

// SetOptsBlueprintRef adds the optsBlueprintRef to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsBlueprintRef(optsBlueprintRef *string) {
	o.OptsBlueprintRef = optsBlueprintRef
}

// WithOptsClusterID adds the optsClusterID to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsClusterID(optsClusterID *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsClusterID(optsClusterID)
	return o
}

// SetOptsClusterID adds the optsClusterId to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsClusterID(optsClusterID *string) {
	o.OptsClusterID = optsClusterID
}

// WithOptsCount adds the optsCount to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsCount(optsCount *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsCount(optsCount)
	return o
}

// SetOptsCount adds the optsCount to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsCount(optsCount *string) {
	o.OptsCount = optsCount
}

// WithOptsDeleted adds the optsDeleted to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsDeleted(optsDeleted *bool) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsDeleted(optsDeleted)
	return o
}

// SetOptsDeleted adds the optsDeleted to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsDeleted(optsDeleted *bool) {
	o.OptsDeleted = optsDeleted
}

// WithOptsDisplayName adds the optsDisplayName to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsDisplayName(optsDisplayName *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsDisplayName(optsDisplayName)
	return o
}

// SetOptsDisplayName adds the optsDisplayName to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsDisplayName(optsDisplayName *string) {
	o.OptsDisplayName = optsDisplayName
}

// WithOptsExtended adds the optsExtended to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsExtended(optsExtended *bool) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsExtended(optsExtended)
	return o
}

// SetOptsExtended adds the optsExtended to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsExtended(optsExtended *bool) {
	o.OptsExtended = optsExtended
}

// WithOptsGlobalScope adds the optsGlobalScope to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsGlobalScope(optsGlobalScope *bool) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsGlobalScope(optsGlobalScope)
	return o
}

// SetOptsGlobalScope adds the optsGlobalScope to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsGlobalScope(optsGlobalScope *bool) {
	o.OptsGlobalScope = optsGlobalScope
}

// WithOptsGroups adds the optsGroups to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsGroups(optsGroups []string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsGroups(optsGroups)
	return o
}

// SetOptsGroups adds the optsGroups to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsGroups(optsGroups []string) {
	o.OptsGroups = optsGroups
}

// WithOptsIgnoreScopeDefault adds the optsIgnoreScopeDefault to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsIgnoreScopeDefault(optsIgnoreScopeDefault *bool) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsIgnoreScopeDefault(optsIgnoreScopeDefault)
	return o
}

// SetOptsIgnoreScopeDefault adds the optsIgnoreScopeDefault to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsIgnoreScopeDefault(optsIgnoreScopeDefault *bool) {
	o.OptsIgnoreScopeDefault = optsIgnoreScopeDefault
}

// WithOptsIsSSOUser adds the optsIsSSOUser to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsIsSSOUser(optsIsSSOUser *bool) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsIsSSOUser(optsIsSSOUser)
	return o
}

// SetOptsIsSSOUser adds the optsIsSSOUser to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsIsSSOUser(optsIsSSOUser *bool) {
	o.OptsIsSSOUser = optsIsSSOUser
}

// WithOptsLimit adds the optsLimit to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsLimit(optsLimit *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsLimit(optsLimit)
	return o
}

// SetOptsLimit adds the optsLimit to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsLimit(optsLimit *string) {
	o.OptsLimit = optsLimit
}

// WithOptsName adds the optsName to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsName(optsName *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsName(optsName)
	return o
}

// SetOptsName adds the optsName to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsName(optsName *string) {
	o.OptsName = optsName
}

// WithOptsOffset adds the optsOffset to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsOffset(optsOffset *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsOffset(optsOffset)
	return o
}

// SetOptsOffset adds the optsOffset to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsOffset(optsOffset *string) {
	o.OptsOffset = optsOffset
}

// WithOptsOrder adds the optsOrder to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsOrder(optsOrder *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsOrder(optsOrder)
	return o
}

// SetOptsOrder adds the optsOrder to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsOrder(optsOrder *string) {
	o.OptsOrder = optsOrder
}

// WithOptsOrderBy adds the optsOrderBy to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsOrderBy(optsOrderBy *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsOrderBy(optsOrderBy)
	return o
}

// SetOptsOrderBy adds the optsOrderBy to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsOrderBy(optsOrderBy *string) {
	o.OptsOrderBy = optsOrderBy
}

// WithOptsOrganization adds the optsOrganization to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsOrganization(optsOrganization *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsOrganization(optsOrganization)
	return o
}

// SetOptsOrganization adds the optsOrganization to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsOrganization(optsOrganization *string) {
	o.OptsOrganization = optsOrganization
}

// WithOptsPartner adds the optsPartner to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsPartner(optsPartner *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsPartner(optsPartner)
	return o
}

// SetOptsPartner adds the optsPartner to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsPartner(optsPartner *string) {
	o.OptsPartner = optsPartner
}

// WithOptsProject adds the optsProject to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsProject(optsProject *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsProject(optsProject)
	return o
}

// SetOptsProject adds the optsProject to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsProject(optsProject *string) {
	o.OptsProject = optsProject
}

// WithOptsPublishedVersion adds the optsPublishedVersion to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsPublishedVersion(optsPublishedVersion *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsPublishedVersion(optsPublishedVersion)
	return o
}

// SetOptsPublishedVersion adds the optsPublishedVersion to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsPublishedVersion(optsPublishedVersion *string) {
	o.OptsPublishedVersion = optsPublishedVersion
}

// WithOptsSelector adds the optsSelector to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsSelector(optsSelector *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsSelector(optsSelector)
	return o
}

// SetOptsSelector adds the optsSelector to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsSelector(optsSelector *string) {
	o.OptsSelector = optsSelector
}

// WithOptsURLScope adds the optsURLScope to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsURLScope(optsURLScope *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsURLScope(optsURLScope)
	return o
}

// SetOptsURLScope adds the optsUrlScope to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsURLScope(optsURLScope *string) {
	o.OptsURLScope = optsURLScope
}

// WithOptsUsername adds the optsUsername to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithOptsUsername(optsUsername *string) *BootstrapGetBootstrapAgentsParams {
	o.SetOptsUsername(optsUsername)
	return o
}

// SetOptsUsername adds the optsUsername to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetOptsUsername(optsUsername *string) {
	o.OptsUsername = optsUsername
}

// WithTemplateScope adds the templateScope to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) WithTemplateScope(templateScope string) *BootstrapGetBootstrapAgentsParams {
	o.SetTemplateScope(templateScope)
	return o
}

// SetTemplateScope adds the templateScope to the bootstrap get bootstrap agents params
func (o *BootstrapGetBootstrapAgentsParams) SetTemplateScope(templateScope string) {
	o.TemplateScope = templateScope
}

// WriteToRequest writes these params to a swagger request
func (o *BootstrapGetBootstrapAgentsParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error {

	if err := r.SetTimeout(o.timeout); err != nil {
		return err
	}
	var res []error

	if o.OptsID != nil {

		// query param opts.ID
		var qrOptsID string

		if o.OptsID != nil {
			qrOptsID = *o.OptsID
		}
		qOptsID := qrOptsID
		if qOptsID != "" {

			if err := r.SetQueryParam("opts.ID", qOptsID); err != nil {
				return err
			}
		}
	}

	if o.OptsAccount != nil {

		// query param opts.account
		var qrOptsAccount string

		if o.OptsAccount != nil {
			qrOptsAccount = *o.OptsAccount
		}
		qOptsAccount := qrOptsAccount
		if qOptsAccount != "" {

			if err := r.SetQueryParam("opts.account", qOptsAccount); err != nil {
				return err
			}
		}
	}

	if o.OptsBlueprintRef != nil {

		// query param opts.blueprintRef
		var qrOptsBlueprintRef string

		if o.OptsBlueprintRef != nil {
			qrOptsBlueprintRef = *o.OptsBlueprintRef
		}
		qOptsBlueprintRef := qrOptsBlueprintRef
		if qOptsBlueprintRef != "" {

			if err := r.SetQueryParam("opts.blueprintRef", qOptsBlueprintRef); err != nil {
				return err
			}
		}
	}

	if o.OptsClusterID != nil {

		// query param opts.clusterID
		var qrOptsClusterID string

		if o.OptsClusterID != nil {
			qrOptsClusterID = *o.OptsClusterID
		}
		qOptsClusterID := qrOptsClusterID
		if qOptsClusterID != "" {

			if err := r.SetQueryParam("opts.clusterID", qOptsClusterID); err != nil {
				return err
			}
		}
	}

	if o.OptsCount != nil {

		// query param opts.count
		var qrOptsCount string

		if o.OptsCount != nil {
			qrOptsCount = *o.OptsCount
		}
		qOptsCount := qrOptsCount
		if qOptsCount != "" {

			if err := r.SetQueryParam("opts.count", qOptsCount); err != nil {
				return err
			}
		}
	}

	if o.OptsDeleted != nil {

		// query param opts.deleted
		var qrOptsDeleted bool

		if o.OptsDeleted != nil {
			qrOptsDeleted = *o.OptsDeleted
		}
		qOptsDeleted := swag.FormatBool(qrOptsDeleted)
		if qOptsDeleted != "" {

			if err := r.SetQueryParam("opts.deleted", qOptsDeleted); err != nil {
				return err
			}
		}
	}

	if o.OptsDisplayName != nil {

		// query param opts.displayName
		var qrOptsDisplayName string

		if o.OptsDisplayName != nil {
			qrOptsDisplayName = *o.OptsDisplayName
		}
		qOptsDisplayName := qrOptsDisplayName
		if qOptsDisplayName != "" {

			if err := r.SetQueryParam("opts.displayName", qOptsDisplayName); err != nil {
				return err
			}
		}
	}

	if o.OptsExtended != nil {

		// query param opts.extended
		var qrOptsExtended bool

		if o.OptsExtended != nil {
			qrOptsExtended = *o.OptsExtended
		}
		qOptsExtended := swag.FormatBool(qrOptsExtended)
		if qOptsExtended != "" {

			if err := r.SetQueryParam("opts.extended", qOptsExtended); err != nil {
				return err
			}
		}
	}

	if o.OptsGlobalScope != nil {

		// query param opts.globalScope
		var qrOptsGlobalScope bool

		if o.OptsGlobalScope != nil {
			qrOptsGlobalScope = *o.OptsGlobalScope
		}
		qOptsGlobalScope := swag.FormatBool(qrOptsGlobalScope)
		if qOptsGlobalScope != "" {

			if err := r.SetQueryParam("opts.globalScope", qOptsGlobalScope); err != nil {
				return err
			}
		}
	}

	if o.OptsGroups != nil {

		// binding items for opts.groups
		joinedOptsGroups := o.bindParamOptsGroups(reg)

		// query array param opts.groups
		if err := r.SetQueryParam("opts.groups", joinedOptsGroups...); err != nil {
			return err
		}
	}

	if o.OptsIgnoreScopeDefault != nil {

		// query param opts.ignoreScopeDefault
		var qrOptsIgnoreScopeDefault bool

		if o.OptsIgnoreScopeDefault != nil {
			qrOptsIgnoreScopeDefault = *o.OptsIgnoreScopeDefault
		}
		qOptsIgnoreScopeDefault := swag.FormatBool(qrOptsIgnoreScopeDefault)
		if qOptsIgnoreScopeDefault != "" {

			if err := r.SetQueryParam("opts.ignoreScopeDefault", qOptsIgnoreScopeDefault); err != nil {
				return err
			}
		}
	}

	if o.OptsIsSSOUser != nil {

		// query param opts.isSSOUser
		var qrOptsIsSSOUser bool

		if o.OptsIsSSOUser != nil {
			qrOptsIsSSOUser = *o.OptsIsSSOUser
		}
		qOptsIsSSOUser := swag.FormatBool(qrOptsIsSSOUser)
		if qOptsIsSSOUser != "" {

			if err := r.SetQueryParam("opts.isSSOUser", qOptsIsSSOUser); err != nil {
				return err
			}
		}
	}

	if o.OptsLimit != nil {

		// query param opts.limit
		var qrOptsLimit string

		if o.OptsLimit != nil {
			qrOptsLimit = *o.OptsLimit
		}
		qOptsLimit := qrOptsLimit
		if qOptsLimit != "" {

			if err := r.SetQueryParam("opts.limit", qOptsLimit); err != nil {
				return err
			}
		}
	}

	if o.OptsName != nil {

		// query param opts.name
		var qrOptsName string

		if o.OptsName != nil {
			qrOptsName = *o.OptsName
		}
		qOptsName := qrOptsName
		if qOptsName != "" {

			if err := r.SetQueryParam("opts.name", qOptsName); err != nil {
				return err
			}
		}
	}

	if o.OptsOffset != nil {

		// query param opts.offset
		var qrOptsOffset string

		if o.OptsOffset != nil {
			qrOptsOffset = *o.OptsOffset
		}
		qOptsOffset := qrOptsOffset
		if qOptsOffset != "" {

			if err := r.SetQueryParam("opts.offset", qOptsOffset); err != nil {
				return err
			}
		}
	}

	if o.OptsOrder != nil {

		// query param opts.order
		var qrOptsOrder string

		if o.OptsOrder != nil {
			qrOptsOrder = *o.OptsOrder
		}
		qOptsOrder := qrOptsOrder
		if qOptsOrder != "" {

			if err := r.SetQueryParam("opts.order", qOptsOrder); err != nil {
				return err
			}
		}
	}

	if o.OptsOrderBy != nil {

		// query param opts.orderBy
		var qrOptsOrderBy string

		if o.OptsOrderBy != nil {
			qrOptsOrderBy = *o.OptsOrderBy
		}
		qOptsOrderBy := qrOptsOrderBy
		if qOptsOrderBy != "" {

			if err := r.SetQueryParam("opts.orderBy", qOptsOrderBy); err != nil {
				return err
			}
		}
	}

	if o.OptsOrganization != nil {

		// query param opts.organization
		var qrOptsOrganization string

		if o.OptsOrganization != nil {
			qrOptsOrganization = *o.OptsOrganization
		}
		qOptsOrganization := qrOptsOrganization
		if qOptsOrganization != "" {

			if err := r.SetQueryParam("opts.organization", qOptsOrganization); err != nil {
				return err
			}
		}
	}

	if o.OptsPartner != nil {

		// query param opts.partner
		var qrOptsPartner string

		if o.OptsPartner != nil {
			qrOptsPartner = *o.OptsPartner
		}
		qOptsPartner := qrOptsPartner
		if qOptsPartner != "" {

			if err := r.SetQueryParam("opts.partner", qOptsPartner); err != nil {
				return err
			}
		}
	}

	if o.OptsProject != nil {

		// query param opts.project
		var qrOptsProject string

		if o.OptsProject != nil {
			qrOptsProject = *o.OptsProject
		}
		qOptsProject := qrOptsProject
		if qOptsProject != "" {

			if err := r.SetQueryParam("opts.project", qOptsProject); err != nil {
				return err
			}
		}
	}

	if o.OptsPublishedVersion != nil {

		// query param opts.publishedVersion
		var qrOptsPublishedVersion string

		if o.OptsPublishedVersion != nil {
			qrOptsPublishedVersion = *o.OptsPublishedVersion
		}
		qOptsPublishedVersion := qrOptsPublishedVersion
		if qOptsPublishedVersion != "" {

			if err := r.SetQueryParam("opts.publishedVersion", qOptsPublishedVersion); err != nil {
				return err
			}
		}
	}

	if o.OptsSelector != nil {

		// query param opts.selector
		var qrOptsSelector string

		if o.OptsSelector != nil {
			qrOptsSelector = *o.OptsSelector
		}
		qOptsSelector := qrOptsSelector
		if qOptsSelector != "" {

			if err := r.SetQueryParam("opts.selector", qOptsSelector); err != nil {
				return err
			}
		}
	}

	if o.OptsURLScope != nil {

		// query param opts.urlScope
		var qrOptsURLScope string

		if o.OptsURLScope != nil {
			qrOptsURLScope = *o.OptsURLScope
		}
		qOptsURLScope := qrOptsURLScope
		if qOptsURLScope != "" {

			if err := r.SetQueryParam("opts.urlScope", qOptsURLScope); err != nil {
				return err
			}
		}
	}

	if o.OptsUsername != nil {

		// query param opts.username
		var qrOptsUsername string

		if o.OptsUsername != nil {
			qrOptsUsername = *o.OptsUsername
		}
		qOptsUsername := qrOptsUsername
		if qOptsUsername != "" {

			if err := r.SetQueryParam("opts.username", qOptsUsername); err != nil {
				return err
			}
		}
	}

	// path param templateScope
	if err := r.SetPathParam("templateScope", o.TemplateScope); err != nil {
		return err
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

// bindParamBootstrapGetBootstrapAgents binds the parameter opts.groups
func (o *BootstrapGetBootstrapAgentsParams) bindParamOptsGroups(formats strfmt.Registry) []string {
	optsGroupsIR := o.OptsGroups

	var optsGroupsIC []string
	for _, optsGroupsIIR := range optsGroupsIR { // explode []string

		optsGroupsIIV := optsGroupsIIR // string as string
		optsGroupsIC = append(optsGroupsIC, optsGroupsIIV)
	}

	// items.CollectionFormat: "multi"
	optsGroupsIS := swag.JoinByFormat(optsGroupsIC, "multi")

	return optsGroupsIS
}
