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

package models

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

import (
	"context"

	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// V3QueryOptions QueryOptions is the options for performing queries on resources
//
// swagger:model v3QueryOptions
type V3QueryOptions struct {

	// ID
	ID string `json:"ID,omitempty"`

	// account
	Account string `json:"account,omitempty"`

	// annotations only used for update queries to set annotations (READONLY)
	Annotations map[string]string `json:"annotations,omitempty"`

	// blueprint ref
	BlueprintRef string `json:"blueprintRef,omitempty"`

	// cluster ID
	ClusterID string `json:"clusterID,omitempty"`

	// count
	Count string `json:"count,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// displayName only used for update queries to set displayName (READONLY)
	DisplayName string `json:"displayName,omitempty"`

	// extended
	Extended bool `json:"extended,omitempty"`

	// globalScope sets partnerID,organizationID,projectID = 0
	GlobalScope bool `json:"globalScope,omitempty"`

	// groups
	Groups []string `json:"groups"`

	// ignoreScopeDefault ignores default values for partnerID, organizationID and
	// projectID
	IgnoreScopeDefault bool `json:"ignoreScopeDefault,omitempty"`

	// is s s o user
	IsSSOUser bool `json:"isSSOUser,omitempty"`

	// labels only used for update queries to set labels (READONLY)
	Labels map[string]string `json:"labels,omitempty"`

	// limit
	Limit string `json:"limit,omitempty"`

	// name is unique ID of a resource along with (partnerID, organizationID,
	// projectID)
	Name string `json:"name,omitempty"`

	// offset
	Offset string `json:"offset,omitempty"`

	// order
	Order string `json:"order,omitempty"`

	// order by
	OrderBy string `json:"orderBy,omitempty"`

	// organization
	Organization string `json:"organization,omitempty"`

	// partner
	Partner string `json:"partner,omitempty"`

	// project
	Project string `json:"project,omitempty"`

	// published version
	PublishedVersion string `json:"publishedVersion,omitempty"`

	// selector is used to filter the labels of a resource
	Selector string `json:"selector,omitempty"`

	// urlScope is supposed to be passed in the URL as kind/HashID(value)
	URLScope string `json:"urlScope,omitempty"`

	// username
	Username string `json:"username,omitempty"`
}

// Validate validates this v3 query options
func (m *V3QueryOptions) Validate(formats strfmt.Registry) error {
	return nil
}

// ContextValidate validates this v3 query options based on context it is used
func (m *V3QueryOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *V3QueryOptions) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *V3QueryOptions) UnmarshalBinary(b []byte) error {
	var res V3QueryOptions
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
