client

package
v1.22.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2023 License: MIT Imports: 21 Imported by: 3

Documentation

Overview

Package client is a generated GoMock package.

Package client is a generated GoMock package.

Index

Constants

View Source
const (
	// VisibilityAppName is used to find ES indexName for visibility
	VisibilityAppName          = "visibility"
	SecondaryVisibilityAppName = "secondary_visibility"
)

Variables

This section is empty.

Functions

func NewAwsHttpClient

func NewAwsHttpClient(config ESAWSRequestSigningConfig) (*http.Client, error)

Types

type BulkProcessor

type BulkProcessor interface {
	Stop() error
	Add(request *BulkableRequest)
}

type BulkProcessorParameters

type BulkProcessorParameters struct {
	Name          string
	NumOfWorkers  int
	BulkActions   int
	BulkSize      int
	FlushInterval time.Duration
	BeforeFunc    elastic.BulkBeforeFunc
	AfterFunc     elastic.BulkAfterFunc
}

BulkProcessorParameters holds all required and optional parameters for executing bulk service

type BulkService

type BulkService interface {
	Do(ctx context.Context) error
	NumberOfActions() int
	Add(request *BulkableRequest)
}

type BulkableRequest

type BulkableRequest struct {
	RequestType BulkableRequestType
	Index       string
	ID          string
	Version     int64
	Doc         map[string]interface{}
}

type BulkableRequestType

type BulkableRequestType uint8
const (
	BulkableRequestTypeIndex BulkableRequestType = iota
	BulkableRequestTypeDelete
)

type CLIClient

type CLIClient interface {
	Client
	Delete(ctx context.Context, indexName string, docID string, version int64) error
}

func NewCLIClient

func NewCLIClient(config *Config, logger log.Logger) (CLIClient, error)

type Client

type Client interface {
	Get(ctx context.Context, index string, docID string) (*elastic.GetResult, error)
	Search(ctx context.Context, p *SearchParameters) (*elastic.SearchResult, error)
	Count(ctx context.Context, index string, query elastic.Query) (int64, error)
	CountGroupBy(ctx context.Context, index string, query elastic.Query, aggName string, agg elastic.Aggregation) (*elastic.SearchResult, error)
	RunBulkProcessor(ctx context.Context, p *BulkProcessorParameters) (BulkProcessor, error)

	// TODO (alex): move this to some admin client (and join with IntegrationTestsClient)
	PutMapping(ctx context.Context, index string, mapping map[string]enumspb.IndexedValueType) (bool, error)
	WaitForYellowStatus(ctx context.Context, index string) (string, error)
	GetMapping(ctx context.Context, index string) (map[string]string, error)

	OpenScroll(ctx context.Context, p *SearchParameters, keepAliveInterval string) (*elastic.SearchResult, error)
	Scroll(ctx context.Context, id string, keepAliveInterval string) (*elastic.SearchResult, error)
	CloseScroll(ctx context.Context, id string) error

	IsPointInTimeSupported(ctx context.Context) bool
	OpenPointInTime(ctx context.Context, index string, keepAliveInterval string) (string, error)
	ClosePointInTime(ctx context.Context, id string) (bool, error)
}

Client is a wrapper around Elasticsearch client library.

func NewClient

func NewClient(config *Config, httpClient *http.Client, logger log.Logger) (Client, error)

type Config

type Config struct {
	Version                      string                    `yaml:"version"`
	URL                          url.URL                   `yaml:"url"`
	Username                     string                    `yaml:"username"`
	Password                     string                    `yaml:"password"`
	Indices                      map[string]string         `yaml:"indices"`
	LogLevel                     string                    `yaml:"logLevel"`
	AWSRequestSigning            ESAWSRequestSigningConfig `yaml:"aws-request-signing"`
	CloseIdleConnectionsInterval time.Duration             `yaml:"closeIdleConnectionsInterval"`
	EnableSniff                  bool                      `yaml:"enableSniff"`
	EnableHealthcheck            bool                      `yaml:"enableHealthcheck"`
}

Config for connecting to Elasticsearch

func (*Config) GetSecondaryVisibilityIndex added in v1.14.3

func (cfg *Config) GetSecondaryVisibilityIndex() string

func (*Config) GetVisibilityIndex

func (cfg *Config) GetVisibilityIndex() string

GetVisibilityIndex return visibility index name from Elasticsearch config or empty string if it is not defined.

func (*Config) Validate

func (cfg *Config) Validate() error

type ESAWSRequestSigningConfig

type ESAWSRequestSigningConfig struct {
	Enabled bool   `yaml:"enabled"`
	Region  string `yaml:"region"`

	// Possible options for CredentialProvider include:
	//   1) static (fill out static Credential Provider)
	//   2) environment
	//		a) AccessKeyID from either AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY environment variable
	//		b) SecretAccessKey from either AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY environment variable
	//   3) aws-sdk-default
	//		a) Follows aws-go-sdk default credential resolution for session.NewSession
	CredentialProvider string `yaml:"credentialProvider"`

	Static ESAWSStaticCredentialProvider `yaml:"static"`
}

ESAWSRequestSigningConfig represents configuration for signing ES requests to AWS

type ESAWSStaticCredentialProvider

type ESAWSStaticCredentialProvider struct {
	AccessKeyID     string `yaml:"accessKeyID"`
	SecretAccessKey string `yaml:"secretAccessKey"`

	// Token only required for temporary security credentials retrieved via STS. Otherwise, this is optional.
	Token string `yaml:"token"`
}

ESAWSStaticCredentialProvider represents static AWS credentials

type IntegrationTestsClient

type IntegrationTestsClient interface {
	CreateIndex(ctx context.Context, index string) (bool, error)
	IndexPutTemplate(ctx context.Context, templateName string, bodyString string) (bool, error)
	IndexExists(ctx context.Context, indexName string) (bool, error)
	DeleteIndex(ctx context.Context, indexName string) (bool, error)
	IndexPutSettings(ctx context.Context, indexName string, bodyString string) (bool, error)
	IndexGetSettings(ctx context.Context, indexName string) (map[string]*elastic.IndicesGetSettingsResponse, error)
	PutMapping(ctx context.Context, index string, mapping map[string]enumspb.IndexedValueType) (bool, error)
}

func NewIntegrationTestsClient

func NewIntegrationTestsClient(config *Config, logger log.Logger) (IntegrationTestsClient, error)

type MockBulkProcessor

type MockBulkProcessor struct {
	// contains filtered or unexported fields
}

MockBulkProcessor is a mock of BulkProcessor interface.

func NewMockBulkProcessor

func NewMockBulkProcessor(ctrl *gomock.Controller) *MockBulkProcessor

NewMockBulkProcessor creates a new mock instance.

func (*MockBulkProcessor) Add

func (m *MockBulkProcessor) Add(request *BulkableRequest)

Add mocks base method.

func (*MockBulkProcessor) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockBulkProcessor) Stop

func (m *MockBulkProcessor) Stop() error

Stop mocks base method.

type MockBulkProcessorMockRecorder

type MockBulkProcessorMockRecorder struct {
	// contains filtered or unexported fields
}

MockBulkProcessorMockRecorder is the mock recorder for MockBulkProcessor.

func (*MockBulkProcessorMockRecorder) Add

func (mr *MockBulkProcessorMockRecorder) Add(request interface{}) *gomock.Call

Add indicates an expected call of Add.

func (*MockBulkProcessorMockRecorder) Stop

Stop indicates an expected call of Stop.

type MockCLIClient

type MockCLIClient struct {
	// contains filtered or unexported fields
}

MockCLIClient is a mock of CLIClient interface.

func NewMockCLIClient

func NewMockCLIClient(ctrl *gomock.Controller) *MockCLIClient

NewMockCLIClient creates a new mock instance.

func (*MockCLIClient) ClosePointInTime added in v1.18.0

func (m *MockCLIClient) ClosePointInTime(ctx context.Context, id string) (bool, error)

ClosePointInTime mocks base method.

func (*MockCLIClient) CloseScroll

func (m *MockCLIClient) CloseScroll(ctx context.Context, id string) error

CloseScroll mocks base method.

func (*MockCLIClient) Count

func (m *MockCLIClient) Count(ctx context.Context, index string, query v7.Query) (int64, error)

Count mocks base method.

func (*MockCLIClient) CountGroupBy added in v1.22.0

func (m *MockCLIClient) CountGroupBy(ctx context.Context, index string, query v7.Query, aggName string, agg v7.Aggregation) (*v7.SearchResult, error)

CountGroupBy mocks base method.

func (*MockCLIClient) Delete

func (m *MockCLIClient) Delete(ctx context.Context, indexName, docID string, version int64) error

Delete mocks base method.

func (*MockCLIClient) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockCLIClient) Get added in v1.19.0

func (m *MockCLIClient) Get(ctx context.Context, index, docID string) (*v7.GetResult, error)

Get mocks base method.

func (*MockCLIClient) GetMapping

func (m *MockCLIClient) GetMapping(ctx context.Context, index string) (map[string]string, error)

GetMapping mocks base method.

func (*MockCLIClient) IsPointInTimeSupported added in v1.18.0

func (m *MockCLIClient) IsPointInTimeSupported(ctx context.Context) bool

IsPointInTimeSupported mocks base method.

func (*MockCLIClient) OpenPointInTime added in v1.18.0

func (m *MockCLIClient) OpenPointInTime(ctx context.Context, index, keepAliveInterval string) (string, error)

OpenPointInTime mocks base method.

func (*MockCLIClient) OpenScroll

func (m *MockCLIClient) OpenScroll(ctx context.Context, p *SearchParameters, keepAliveInterval string) (*v7.SearchResult, error)

OpenScroll mocks base method.

func (*MockCLIClient) PutMapping

func (m *MockCLIClient) PutMapping(ctx context.Context, index string, mapping map[string]v1.IndexedValueType) (bool, error)

PutMapping mocks base method.

func (*MockCLIClient) RunBulkProcessor

func (m *MockCLIClient) RunBulkProcessor(ctx context.Context, p *BulkProcessorParameters) (BulkProcessor, error)

RunBulkProcessor mocks base method.

func (*MockCLIClient) Scroll

func (m *MockCLIClient) Scroll(ctx context.Context, id, keepAliveInterval string) (*v7.SearchResult, error)

Scroll mocks base method.

func (*MockCLIClient) Search

Search mocks base method.

func (*MockCLIClient) WaitForYellowStatus

func (m *MockCLIClient) WaitForYellowStatus(ctx context.Context, index string) (string, error)

WaitForYellowStatus mocks base method.

type MockCLIClientMockRecorder

type MockCLIClientMockRecorder struct {
	// contains filtered or unexported fields
}

MockCLIClientMockRecorder is the mock recorder for MockCLIClient.

func (*MockCLIClientMockRecorder) ClosePointInTime added in v1.18.0

func (mr *MockCLIClientMockRecorder) ClosePointInTime(ctx, id interface{}) *gomock.Call

ClosePointInTime indicates an expected call of ClosePointInTime.

func (*MockCLIClientMockRecorder) CloseScroll

func (mr *MockCLIClientMockRecorder) CloseScroll(ctx, id interface{}) *gomock.Call

CloseScroll indicates an expected call of CloseScroll.

func (*MockCLIClientMockRecorder) Count

func (mr *MockCLIClientMockRecorder) Count(ctx, index, query interface{}) *gomock.Call

Count indicates an expected call of Count.

func (*MockCLIClientMockRecorder) CountGroupBy added in v1.22.0

func (mr *MockCLIClientMockRecorder) CountGroupBy(ctx, index, query, aggName, agg interface{}) *gomock.Call

CountGroupBy indicates an expected call of CountGroupBy.

func (*MockCLIClientMockRecorder) Delete

func (mr *MockCLIClientMockRecorder) Delete(ctx, indexName, docID, version interface{}) *gomock.Call

Delete indicates an expected call of Delete.

func (*MockCLIClientMockRecorder) Get added in v1.19.0

func (mr *MockCLIClientMockRecorder) Get(ctx, index, docID interface{}) *gomock.Call

Get indicates an expected call of Get.

func (*MockCLIClientMockRecorder) GetMapping

func (mr *MockCLIClientMockRecorder) GetMapping(ctx, index interface{}) *gomock.Call

GetMapping indicates an expected call of GetMapping.

func (*MockCLIClientMockRecorder) IsPointInTimeSupported added in v1.18.0

func (mr *MockCLIClientMockRecorder) IsPointInTimeSupported(ctx interface{}) *gomock.Call

IsPointInTimeSupported indicates an expected call of IsPointInTimeSupported.

func (*MockCLIClientMockRecorder) OpenPointInTime added in v1.18.0

func (mr *MockCLIClientMockRecorder) OpenPointInTime(ctx, index, keepAliveInterval interface{}) *gomock.Call

OpenPointInTime indicates an expected call of OpenPointInTime.

func (*MockCLIClientMockRecorder) OpenScroll

func (mr *MockCLIClientMockRecorder) OpenScroll(ctx, p, keepAliveInterval interface{}) *gomock.Call

OpenScroll indicates an expected call of OpenScroll.

func (*MockCLIClientMockRecorder) PutMapping

func (mr *MockCLIClientMockRecorder) PutMapping(ctx, index, mapping interface{}) *gomock.Call

PutMapping indicates an expected call of PutMapping.

func (*MockCLIClientMockRecorder) RunBulkProcessor

func (mr *MockCLIClientMockRecorder) RunBulkProcessor(ctx, p interface{}) *gomock.Call

RunBulkProcessor indicates an expected call of RunBulkProcessor.

func (*MockCLIClientMockRecorder) Scroll

func (mr *MockCLIClientMockRecorder) Scroll(ctx, id, keepAliveInterval interface{}) *gomock.Call

Scroll indicates an expected call of Scroll.

func (*MockCLIClientMockRecorder) Search

func (mr *MockCLIClientMockRecorder) Search(ctx, p interface{}) *gomock.Call

Search indicates an expected call of Search.

func (*MockCLIClientMockRecorder) WaitForYellowStatus

func (mr *MockCLIClientMockRecorder) WaitForYellowStatus(ctx, index interface{}) *gomock.Call

WaitForYellowStatus indicates an expected call of WaitForYellowStatus.

type MockClient

type MockClient struct {
	// contains filtered or unexported fields
}

MockClient is a mock of Client interface.

func NewMockClient

func NewMockClient(ctrl *gomock.Controller) *MockClient

NewMockClient creates a new mock instance.

func (*MockClient) ClosePointInTime added in v1.18.0

func (m *MockClient) ClosePointInTime(ctx context.Context, id string) (bool, error)

ClosePointInTime mocks base method.

func (*MockClient) CloseScroll

func (m *MockClient) CloseScroll(ctx context.Context, id string) error

CloseScroll mocks base method.

func (*MockClient) Count

func (m *MockClient) Count(ctx context.Context, index string, query v7.Query) (int64, error)

Count mocks base method.

func (*MockClient) CountGroupBy added in v1.22.0

func (m *MockClient) CountGroupBy(ctx context.Context, index string, query v7.Query, aggName string, agg v7.Aggregation) (*v7.SearchResult, error)

CountGroupBy mocks base method.

func (*MockClient) EXPECT

func (m *MockClient) EXPECT() *MockClientMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockClient) Get added in v1.19.0

func (m *MockClient) Get(ctx context.Context, index, docID string) (*v7.GetResult, error)

Get mocks base method.

func (*MockClient) GetMapping

func (m *MockClient) GetMapping(ctx context.Context, index string) (map[string]string, error)

GetMapping mocks base method.

func (*MockClient) IsPointInTimeSupported added in v1.18.0

func (m *MockClient) IsPointInTimeSupported(ctx context.Context) bool

IsPointInTimeSupported mocks base method.

func (*MockClient) OpenPointInTime added in v1.18.0

func (m *MockClient) OpenPointInTime(ctx context.Context, index, keepAliveInterval string) (string, error)

OpenPointInTime mocks base method.

func (*MockClient) OpenScroll

func (m *MockClient) OpenScroll(ctx context.Context, p *SearchParameters, keepAliveInterval string) (*v7.SearchResult, error)

OpenScroll mocks base method.

func (*MockClient) PutMapping

func (m *MockClient) PutMapping(ctx context.Context, index string, mapping map[string]v1.IndexedValueType) (bool, error)

PutMapping mocks base method.

func (*MockClient) RunBulkProcessor

func (m *MockClient) RunBulkProcessor(ctx context.Context, p *BulkProcessorParameters) (BulkProcessor, error)

RunBulkProcessor mocks base method.

func (*MockClient) Scroll

func (m *MockClient) Scroll(ctx context.Context, id, keepAliveInterval string) (*v7.SearchResult, error)

Scroll mocks base method.

func (*MockClient) Search

Search mocks base method.

func (*MockClient) WaitForYellowStatus

func (m *MockClient) WaitForYellowStatus(ctx context.Context, index string) (string, error)

WaitForYellowStatus mocks base method.

type MockClientMockRecorder

type MockClientMockRecorder struct {
	// contains filtered or unexported fields
}

MockClientMockRecorder is the mock recorder for MockClient.

func (*MockClientMockRecorder) ClosePointInTime added in v1.18.0

func (mr *MockClientMockRecorder) ClosePointInTime(ctx, id interface{}) *gomock.Call

ClosePointInTime indicates an expected call of ClosePointInTime.

func (*MockClientMockRecorder) CloseScroll

func (mr *MockClientMockRecorder) CloseScroll(ctx, id interface{}) *gomock.Call

CloseScroll indicates an expected call of CloseScroll.

func (*MockClientMockRecorder) Count

func (mr *MockClientMockRecorder) Count(ctx, index, query interface{}) *gomock.Call

Count indicates an expected call of Count.

func (*MockClientMockRecorder) CountGroupBy added in v1.22.0

func (mr *MockClientMockRecorder) CountGroupBy(ctx, index, query, aggName, agg interface{}) *gomock.Call

CountGroupBy indicates an expected call of CountGroupBy.

func (*MockClientMockRecorder) Get added in v1.19.0

func (mr *MockClientMockRecorder) Get(ctx, index, docID interface{}) *gomock.Call

Get indicates an expected call of Get.

func (*MockClientMockRecorder) GetMapping

func (mr *MockClientMockRecorder) GetMapping(ctx, index interface{}) *gomock.Call

GetMapping indicates an expected call of GetMapping.

func (*MockClientMockRecorder) IsPointInTimeSupported added in v1.18.0

func (mr *MockClientMockRecorder) IsPointInTimeSupported(ctx interface{}) *gomock.Call

IsPointInTimeSupported indicates an expected call of IsPointInTimeSupported.

func (*MockClientMockRecorder) OpenPointInTime added in v1.18.0

func (mr *MockClientMockRecorder) OpenPointInTime(ctx, index, keepAliveInterval interface{}) *gomock.Call

OpenPointInTime indicates an expected call of OpenPointInTime.

func (*MockClientMockRecorder) OpenScroll

func (mr *MockClientMockRecorder) OpenScroll(ctx, p, keepAliveInterval interface{}) *gomock.Call

OpenScroll indicates an expected call of OpenScroll.

func (*MockClientMockRecorder) PutMapping

func (mr *MockClientMockRecorder) PutMapping(ctx, index, mapping interface{}) *gomock.Call

PutMapping indicates an expected call of PutMapping.

func (*MockClientMockRecorder) RunBulkProcessor

func (mr *MockClientMockRecorder) RunBulkProcessor(ctx, p interface{}) *gomock.Call

RunBulkProcessor indicates an expected call of RunBulkProcessor.

func (*MockClientMockRecorder) Scroll

func (mr *MockClientMockRecorder) Scroll(ctx, id, keepAliveInterval interface{}) *gomock.Call

Scroll indicates an expected call of Scroll.

func (*MockClientMockRecorder) Search

func (mr *MockClientMockRecorder) Search(ctx, p interface{}) *gomock.Call

Search indicates an expected call of Search.

func (*MockClientMockRecorder) WaitForYellowStatus

func (mr *MockClientMockRecorder) WaitForYellowStatus(ctx, index interface{}) *gomock.Call

WaitForYellowStatus indicates an expected call of WaitForYellowStatus.

type MockIntegrationTestsClient

type MockIntegrationTestsClient struct {
	// contains filtered or unexported fields
}

MockIntegrationTestsClient is a mock of IntegrationTestsClient interface.

func NewMockIntegrationTestsClient

func NewMockIntegrationTestsClient(ctrl *gomock.Controller) *MockIntegrationTestsClient

NewMockIntegrationTestsClient creates a new mock instance.

func (*MockIntegrationTestsClient) CreateIndex

func (m *MockIntegrationTestsClient) CreateIndex(ctx context.Context, index string) (bool, error)

CreateIndex mocks base method.

func (*MockIntegrationTestsClient) DeleteIndex

func (m *MockIntegrationTestsClient) DeleteIndex(ctx context.Context, indexName string) (bool, error)

DeleteIndex mocks base method.

func (*MockIntegrationTestsClient) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockIntegrationTestsClient) IndexExists

func (m *MockIntegrationTestsClient) IndexExists(ctx context.Context, indexName string) (bool, error)

IndexExists mocks base method.

func (*MockIntegrationTestsClient) IndexGetSettings

func (m *MockIntegrationTestsClient) IndexGetSettings(ctx context.Context, indexName string) (map[string]*v7.IndicesGetSettingsResponse, error)

IndexGetSettings mocks base method.

func (*MockIntegrationTestsClient) IndexPutSettings

func (m *MockIntegrationTestsClient) IndexPutSettings(ctx context.Context, indexName, bodyString string) (bool, error)

IndexPutSettings mocks base method.

func (*MockIntegrationTestsClient) IndexPutTemplate

func (m *MockIntegrationTestsClient) IndexPutTemplate(ctx context.Context, templateName, bodyString string) (bool, error)

IndexPutTemplate mocks base method.

func (*MockIntegrationTestsClient) PutMapping added in v1.20.0

func (m *MockIntegrationTestsClient) PutMapping(ctx context.Context, index string, mapping map[string]v1.IndexedValueType) (bool, error)

PutMapping mocks base method.

type MockIntegrationTestsClientMockRecorder

type MockIntegrationTestsClientMockRecorder struct {
	// contains filtered or unexported fields
}

MockIntegrationTestsClientMockRecorder is the mock recorder for MockIntegrationTestsClient.

func (*MockIntegrationTestsClientMockRecorder) CreateIndex

func (mr *MockIntegrationTestsClientMockRecorder) CreateIndex(ctx, index interface{}) *gomock.Call

CreateIndex indicates an expected call of CreateIndex.

func (*MockIntegrationTestsClientMockRecorder) DeleteIndex

func (mr *MockIntegrationTestsClientMockRecorder) DeleteIndex(ctx, indexName interface{}) *gomock.Call

DeleteIndex indicates an expected call of DeleteIndex.

func (*MockIntegrationTestsClientMockRecorder) IndexExists

func (mr *MockIntegrationTestsClientMockRecorder) IndexExists(ctx, indexName interface{}) *gomock.Call

IndexExists indicates an expected call of IndexExists.

func (*MockIntegrationTestsClientMockRecorder) IndexGetSettings

func (mr *MockIntegrationTestsClientMockRecorder) IndexGetSettings(ctx, indexName interface{}) *gomock.Call

IndexGetSettings indicates an expected call of IndexGetSettings.

func (*MockIntegrationTestsClientMockRecorder) IndexPutSettings

func (mr *MockIntegrationTestsClientMockRecorder) IndexPutSettings(ctx, indexName, bodyString interface{}) *gomock.Call

IndexPutSettings indicates an expected call of IndexPutSettings.

func (*MockIntegrationTestsClientMockRecorder) IndexPutTemplate

func (mr *MockIntegrationTestsClientMockRecorder) IndexPutTemplate(ctx, templateName, bodyString interface{}) *gomock.Call

IndexPutTemplate indicates an expected call of IndexPutTemplate.

func (*MockIntegrationTestsClientMockRecorder) PutMapping added in v1.20.0

func (mr *MockIntegrationTestsClientMockRecorder) PutMapping(ctx, index, mapping interface{}) *gomock.Call

PutMapping indicates an expected call of PutMapping.

type SearchParameters

type SearchParameters struct {
	Index    string
	Query    elastic.Query
	PageSize int
	Sorter   []elastic.Sorter

	SearchAfter []interface{}
	ScrollID    string
	PointInTime *elastic.PointInTime
}

SearchParameters holds all required and optional parameters for executing a search.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL