advisor

package
v37.2.0 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package advisor implements the Azure ARM Advisor service API version 2017-03-31.

REST APIs for Azure Advisor

Index

Constants

View Source
const (
	// DefaultBaseURI is the default URI used for the service Advisor
	DefaultBaseURI = "https://management.azure.com"
)

Variables

This section is empty.

Functions

func UserAgent

func UserAgent() string

UserAgent returns the UserAgent string to use when sending http.Requests.

func Version

func Version() string

Version returns the semantic version (see http://semver.org) of the client.

Types

type BaseClient

type BaseClient struct {
	autorest.Client
	BaseURI        string
	SubscriptionID string
}

BaseClient is the base client for Advisor.

func New

func New(subscriptionID string) BaseClient

New creates an instance of the BaseClient client.

func NewWithBaseURI

func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient

NewWithBaseURI creates an instance of the BaseClient client.

type Category

type Category string

Category enumerates the values for category.

const (
	// Cost ...
	Cost Category = "Cost"
	// HighAvailability ...
	HighAvailability Category = "HighAvailability"
	// OperationalExcellence ...
	OperationalExcellence Category = "OperationalExcellence"
	// Performance ...
	Performance Category = "Performance"
	// Security ...
	Security Category = "Security"
)

func PossibleCategoryValues

func PossibleCategoryValues() []Category

PossibleCategoryValues returns an array of possible values for the Category const type.

type Impact

type Impact string

Impact enumerates the values for impact.

const (
	// High ...
	High Impact = "High"
	// Low ...
	Low Impact = "Low"
	// Medium ...
	Medium Impact = "Medium"
)

func PossibleImpactValues

func PossibleImpactValues() []Impact

PossibleImpactValues returns an array of possible values for the Impact const type.

type ListSuppressionContract

type ListSuppressionContract struct {
	autorest.Response `json:"-"`
	Value             *[]SuppressionContract `json:"value,omitempty"`
}

ListSuppressionContract ...

type OperationDisplayInfo

type OperationDisplayInfo struct {
	// Description - The description of the operation.
	Description *string `json:"description,omitempty"`
	// Operation - The action that users can perform, based on their permission level.
	Operation *string `json:"operation,omitempty"`
	// Provider - Service provider: Microsoft Advisor.
	Provider *string `json:"provider,omitempty"`
	// Resource - Resource on which the operation is performed.
	Resource *string `json:"resource,omitempty"`
}

OperationDisplayInfo the operation supported by Advisor.

type OperationEntity

type OperationEntity struct {
	// Name - Operation name: {provider}/{resource}/{operation}.
	Name *string `json:"name,omitempty"`
	// Display - The operation supported by Advisor.
	Display *OperationDisplayInfo `json:"display,omitempty"`
}

OperationEntity the operation supported by Advisor.

type OperationEntityListResult

type OperationEntityListResult struct {
	autorest.Response `json:"-"`
	// NextLink - The link used to get the next page of operations.
	NextLink *string `json:"nextLink,omitempty"`
	// Value - The list of operations.
	Value *[]OperationEntity `json:"value,omitempty"`
}

OperationEntityListResult the list of Advisor operations.

func (OperationEntityListResult) IsEmpty

func (oelr OperationEntityListResult) IsEmpty() bool

IsEmpty returns true if the ListResult contains no values.

type OperationEntityListResultIterator

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

OperationEntityListResultIterator provides access to a complete listing of OperationEntity values.

func NewOperationEntityListResultIterator

func NewOperationEntityListResultIterator(page OperationEntityListResultPage) OperationEntityListResultIterator

Creates a new instance of the OperationEntityListResultIterator type.

func (*OperationEntityListResultIterator) Next

Next advances to the next value. If there was an error making the request the iterator does not advance and the error is returned. Deprecated: Use NextWithContext() instead.

func (*OperationEntityListResultIterator) NextWithContext

func (iter *OperationEntityListResultIterator) NextWithContext(ctx context.Context) (err error)

NextWithContext advances to the next value. If there was an error making the request the iterator does not advance and the error is returned.

func (OperationEntityListResultIterator) NotDone

func (iter OperationEntityListResultIterator) NotDone() bool

NotDone returns true if the enumeration should be started or is not yet complete.

func (OperationEntityListResultIterator) Response

Response returns the raw server response from the last page request.

func (OperationEntityListResultIterator) Value

Value returns the current value or a zero-initialized value if the iterator has advanced beyond the end of the collection.

type OperationEntityListResultPage

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

OperationEntityListResultPage contains a page of OperationEntity values.

func NewOperationEntityListResultPage

func NewOperationEntityListResultPage(getNextPage func(context.Context, OperationEntityListResult) (OperationEntityListResult, error)) OperationEntityListResultPage

Creates a new instance of the OperationEntityListResultPage type.

func (*OperationEntityListResultPage) Next

func (page *OperationEntityListResultPage) Next() error

Next advances to the next page of values. If there was an error making the request the page does not advance and the error is returned. Deprecated: Use NextWithContext() instead.

func (*OperationEntityListResultPage) NextWithContext

func (page *OperationEntityListResultPage) NextWithContext(ctx context.Context) (err error)

NextWithContext advances to the next page of values. If there was an error making the request the page does not advance and the error is returned.

func (OperationEntityListResultPage) NotDone

func (page OperationEntityListResultPage) NotDone() bool

NotDone returns true if the page enumeration should be started or is not yet complete.

func (OperationEntityListResultPage) Response

Response returns the raw server response from the last page request.

func (OperationEntityListResultPage) Values

Values returns the slice of values for the current page or nil if there are no values.

type OperationsClient

type OperationsClient struct {
	BaseClient
}

OperationsClient is the REST APIs for Azure Advisor

func NewOperationsClient

func NewOperationsClient(subscriptionID string) OperationsClient

NewOperationsClient creates an instance of the OperationsClient client.

func NewOperationsClientWithBaseURI

func NewOperationsClientWithBaseURI(baseURI string, subscriptionID string) OperationsClient

NewOperationsClientWithBaseURI creates an instance of the OperationsClient client.

func (OperationsClient) List

func (client OperationsClient) List(ctx context.Context) (result OperationEntityListResultPage, err error)

List lists all the available Advisor REST API operations.

func (OperationsClient) ListComplete

func (client OperationsClient) ListComplete(ctx context.Context) (result OperationEntityListResultIterator, err error)

ListComplete enumerates all values, automatically crossing page boundaries as required.

func (OperationsClient) ListPreparer

func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, error)

ListPreparer prepares the List request.

func (OperationsClient) ListResponder

func (client OperationsClient) ListResponder(resp *http.Response) (result OperationEntityListResult, err error)

ListResponder handles the response to the List request. The method always closes the http.Response Body.

func (OperationsClient) ListSender

func (client OperationsClient) ListSender(req *http.Request) (*http.Response, error)

ListSender sends the List request. The method will close the http.Response Body if it receives an error.

type RecommendationProperties

type RecommendationProperties struct {
	// Category - The category of the recommendation. Possible values include: 'HighAvailability', 'Security', 'Performance', 'Cost', 'OperationalExcellence'
	Category Category `json:"category,omitempty"`
	// Impact - The business impact of the recommendation. Possible values include: 'High', 'Medium', 'Low'
	Impact Impact `json:"impact,omitempty"`
	// ImpactedField - The resource type identified by Advisor.
	ImpactedField *string `json:"impactedField,omitempty"`
	// ImpactedValue - The resource identified by Advisor.
	ImpactedValue *string `json:"impactedValue,omitempty"`
	// LastUpdated - The most recent time that Advisor checked the validity of the recommendation.
	LastUpdated *date.Time `json:"lastUpdated,omitempty"`
	// Metadata - The recommendation metadata.
	Metadata map[string]interface{} `json:"metadata"`
	// RecommendationTypeID - The recommendation-type GUID.
	RecommendationTypeID *string `json:"recommendationTypeId,omitempty"`
	// Risk - The potential risk of not implementing the recommendation. Possible values include: 'Error', 'Warning', 'None'
	Risk Risk `json:"risk,omitempty"`
	// ShortDescription - A summary of the recommendation.
	ShortDescription *ShortDescription `json:"shortDescription,omitempty"`
	// SuppressionIds - The list of snoozed and dismissed rules for the recommendation.
	SuppressionIds *[]uuid.UUID `json:"suppressionIds,omitempty"`
}

RecommendationProperties the properties of the recommendation.

func (RecommendationProperties) MarshalJSON

func (rp RecommendationProperties) MarshalJSON() ([]byte, error)

MarshalJSON is the custom marshaler for RecommendationProperties.

type RecommendationsClient

type RecommendationsClient struct {
	BaseClient
}

RecommendationsClient is the REST APIs for Azure Advisor

func NewRecommendationsClient

func NewRecommendationsClient(subscriptionID string) RecommendationsClient

NewRecommendationsClient creates an instance of the RecommendationsClient client.

func NewRecommendationsClientWithBaseURI

func NewRecommendationsClientWithBaseURI(baseURI string, subscriptionID string) RecommendationsClient

NewRecommendationsClientWithBaseURI creates an instance of the RecommendationsClient client.

func (RecommendationsClient) Generate

func (client RecommendationsClient) Generate(ctx context.Context) (result autorest.Response, err error)

Generate initiates the recommendation generation or computation process for a subscription. This operation is asynchronous. The generated recommendations are stored in a cache in the Advisor service.

func (RecommendationsClient) GeneratePreparer

func (client RecommendationsClient) GeneratePreparer(ctx context.Context) (*http.Request, error)

GeneratePreparer prepares the Generate request.

func (RecommendationsClient) GenerateResponder

func (client RecommendationsClient) GenerateResponder(resp *http.Response) (result autorest.Response, err error)

GenerateResponder handles the response to the Generate request. The method always closes the http.Response Body.

func (RecommendationsClient) GenerateSender

func (client RecommendationsClient) GenerateSender(req *http.Request) (*http.Response, error)

GenerateSender sends the Generate request. The method will close the http.Response Body if it receives an error.

func (RecommendationsClient) Get

func (client RecommendationsClient) Get(ctx context.Context, resourceURI string, recommendationID string) (result ResourceRecommendationBase, err error)

Get obtains details of a cached recommendation. Parameters: resourceURI - the fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies. recommendationID - the recommendation ID.

func (RecommendationsClient) GetGenerateStatus

func (client RecommendationsClient) GetGenerateStatus(ctx context.Context, operationID uuid.UUID) (result autorest.Response, err error)

GetGenerateStatus retrieves the status of the recommendation computation or generation process. Invoke this API after calling the generation recommendation. The URI of this API is returned in the Location field of the response header. Parameters: operationID - the operation ID, which can be found from the Location field in the generate recommendation response header.

func (RecommendationsClient) GetGenerateStatusPreparer

func (client RecommendationsClient) GetGenerateStatusPreparer(ctx context.Context, operationID uuid.UUID) (*http.Request, error)

GetGenerateStatusPreparer prepares the GetGenerateStatus request.

func (RecommendationsClient) GetGenerateStatusResponder

func (client RecommendationsClient) GetGenerateStatusResponder(resp *http.Response) (result autorest.Response, err error)

GetGenerateStatusResponder handles the response to the GetGenerateStatus request. The method always closes the http.Response Body.

func (RecommendationsClient) GetGenerateStatusSender

func (client RecommendationsClient) GetGenerateStatusSender(req *http.Request) (*http.Response, error)

GetGenerateStatusSender sends the GetGenerateStatus request. The method will close the http.Response Body if it receives an error.

func (RecommendationsClient) GetPreparer

func (client RecommendationsClient) GetPreparer(ctx context.Context, resourceURI string, recommendationID string) (*http.Request, error)

GetPreparer prepares the Get request.

func (RecommendationsClient) GetResponder

func (client RecommendationsClient) GetResponder(resp *http.Response) (result ResourceRecommendationBase, err error)

GetResponder handles the response to the Get request. The method always closes the http.Response Body.

func (RecommendationsClient) GetSender

func (client RecommendationsClient) GetSender(req *http.Request) (*http.Response, error)

GetSender sends the Get request. The method will close the http.Response Body if it receives an error.

func (RecommendationsClient) List

func (client RecommendationsClient) List(ctx context.Context, filter string, top *int32, skipToken string) (result ResourceRecommendationBaseListResultPage, err error)

List obtains cached recommendations for a subscription. The recommendations are generated or computed by invoking generateRecommendations. Parameters: filter - the filter to apply to the recommendations. top - the number of recommendations per page if a paged version of this API is being used. skipToken - the page-continuation token to use with a paged version of this API.

func (RecommendationsClient) ListComplete

func (client RecommendationsClient) ListComplete(ctx context.Context, filter string, top *int32, skipToken string) (result ResourceRecommendationBaseListResultIterator, err error)

ListComplete enumerates all values, automatically crossing page boundaries as required.

func (RecommendationsClient) ListPreparer

func (client RecommendationsClient) ListPreparer(ctx context.Context, filter string, top *int32, skipToken string) (*http.Request, error)

ListPreparer prepares the List request.

func (RecommendationsClient) ListResponder

func (client RecommendationsClient) ListResponder(resp *http.Response) (result ResourceRecommendationBaseListResult, err error)

ListResponder handles the response to the List request. The method always closes the http.Response Body.

func (RecommendationsClient) ListSender

func (client RecommendationsClient) ListSender(req *http.Request) (*http.Response, error)

ListSender sends the List request. The method will close the http.Response Body if it receives an error.

type Resource

type Resource struct {
	// ID - READ-ONLY; The resource ID.
	ID *string `json:"id,omitempty"`
	// Name - READ-ONLY; The name of the resource.
	Name *string `json:"name,omitempty"`
	// Type - READ-ONLY; The type of the resource.
	Type *string `json:"type,omitempty"`
}

Resource an Azure resource.

type ResourceRecommendationBase

type ResourceRecommendationBase struct {
	autorest.Response `json:"-"`
	// RecommendationProperties - The properties of the recommendation.
	*RecommendationProperties `json:"properties,omitempty"`
	// ID - READ-ONLY; The resource ID.
	ID *string `json:"id,omitempty"`
	// Name - READ-ONLY; The name of the resource.
	Name *string `json:"name,omitempty"`
	// Type - READ-ONLY; The type of the resource.
	Type *string `json:"type,omitempty"`
}

ResourceRecommendationBase advisor Recommendation.

func (ResourceRecommendationBase) MarshalJSON

func (rrb ResourceRecommendationBase) MarshalJSON() ([]byte, error)

MarshalJSON is the custom marshaler for ResourceRecommendationBase.

func (*ResourceRecommendationBase) UnmarshalJSON

func (rrb *ResourceRecommendationBase) UnmarshalJSON(body []byte) error

UnmarshalJSON is the custom unmarshaler for ResourceRecommendationBase struct.

type ResourceRecommendationBaseListResult

type ResourceRecommendationBaseListResult struct {
	autorest.Response `json:"-"`
	// NextLink - The link used to get the next page of recommendations.
	NextLink *string `json:"nextLink,omitempty"`
	// Value - The list of recommendations.
	Value *[]ResourceRecommendationBase `json:"value,omitempty"`
}

ResourceRecommendationBaseListResult the list of Advisor recommendations.

func (ResourceRecommendationBaseListResult) IsEmpty

IsEmpty returns true if the ListResult contains no values.

type ResourceRecommendationBaseListResultIterator

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

ResourceRecommendationBaseListResultIterator provides access to a complete listing of ResourceRecommendationBase values.

func NewResourceRecommendationBaseListResultIterator

func NewResourceRecommendationBaseListResultIterator(page ResourceRecommendationBaseListResultPage) ResourceRecommendationBaseListResultIterator

Creates a new instance of the ResourceRecommendationBaseListResultIterator type.

func (*ResourceRecommendationBaseListResultIterator) Next

Next advances to the next value. If there was an error making the request the iterator does not advance and the error is returned. Deprecated: Use NextWithContext() instead.

func (*ResourceRecommendationBaseListResultIterator) NextWithContext

func (iter *ResourceRecommendationBaseListResultIterator) NextWithContext(ctx context.Context) (err error)

NextWithContext advances to the next value. If there was an error making the request the iterator does not advance and the error is returned.

func (ResourceRecommendationBaseListResultIterator) NotDone

NotDone returns true if the enumeration should be started or is not yet complete.

func (ResourceRecommendationBaseListResultIterator) Response

Response returns the raw server response from the last page request.

func (ResourceRecommendationBaseListResultIterator) Value

Value returns the current value or a zero-initialized value if the iterator has advanced beyond the end of the collection.

type ResourceRecommendationBaseListResultPage

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

ResourceRecommendationBaseListResultPage contains a page of ResourceRecommendationBase values.

func NewResourceRecommendationBaseListResultPage

Creates a new instance of the ResourceRecommendationBaseListResultPage type.

func (*ResourceRecommendationBaseListResultPage) Next

Next advances to the next page of values. If there was an error making the request the page does not advance and the error is returned. Deprecated: Use NextWithContext() instead.

func (*ResourceRecommendationBaseListResultPage) NextWithContext

func (page *ResourceRecommendationBaseListResultPage) NextWithContext(ctx context.Context) (err error)

NextWithContext advances to the next page of values. If there was an error making the request the page does not advance and the error is returned.

func (ResourceRecommendationBaseListResultPage) NotDone

NotDone returns true if the page enumeration should be started or is not yet complete.

func (ResourceRecommendationBaseListResultPage) Response

Response returns the raw server response from the last page request.

func (ResourceRecommendationBaseListResultPage) Values

Values returns the slice of values for the current page or nil if there are no values.

type Risk

type Risk string

Risk enumerates the values for risk.

const (
	// Error ...
	Error Risk = "Error"
	// None ...
	None Risk = "None"
	// Warning ...
	Warning Risk = "Warning"
)

func PossibleRiskValues

func PossibleRiskValues() []Risk

PossibleRiskValues returns an array of possible values for the Risk const type.

type ShortDescription

type ShortDescription struct {
	// Problem - The issue or opportunity identified by the recommendation.
	Problem *string `json:"problem,omitempty"`
	// Solution - The remediation action suggested by the recommendation.
	Solution *string `json:"solution,omitempty"`
}

ShortDescription a summary of the recommendation.

type SuppressionContract

type SuppressionContract struct {
	autorest.Response `json:"-"`
	// SuppressionProperties - The properties of the suppression.
	*SuppressionProperties `json:"properties,omitempty"`
	// ID - READ-ONLY; The resource ID.
	ID *string `json:"id,omitempty"`
	// Name - READ-ONLY; The name of the resource.
	Name *string `json:"name,omitempty"`
	// Type - READ-ONLY; The type of the resource.
	Type *string `json:"type,omitempty"`
}

SuppressionContract the details of the snoozed or dismissed rule; for example, the duration, name, and GUID associated with the rule.

func (SuppressionContract) MarshalJSON

func (sc SuppressionContract) MarshalJSON() ([]byte, error)

MarshalJSON is the custom marshaler for SuppressionContract.

func (*SuppressionContract) UnmarshalJSON

func (sc *SuppressionContract) UnmarshalJSON(body []byte) error

UnmarshalJSON is the custom unmarshaler for SuppressionContract struct.

type SuppressionProperties

type SuppressionProperties struct {
	// SuppressionID - The GUID of the suppression.
	SuppressionID *string `json:"suppressionId,omitempty"`
	// TTL - The duration for which the suppression is valid.
	TTL *string `json:"ttl,omitempty"`
}

SuppressionProperties the properties of the suppression.

type SuppressionsClient

type SuppressionsClient struct {
	BaseClient
}

SuppressionsClient is the REST APIs for Azure Advisor

func NewSuppressionsClient

func NewSuppressionsClient(subscriptionID string) SuppressionsClient

NewSuppressionsClient creates an instance of the SuppressionsClient client.

func NewSuppressionsClientWithBaseURI

func NewSuppressionsClientWithBaseURI(baseURI string, subscriptionID string) SuppressionsClient

NewSuppressionsClientWithBaseURI creates an instance of the SuppressionsClient client.

func (SuppressionsClient) Create

func (client SuppressionsClient) Create(ctx context.Context, resourceURI string, recommendationID string, name string, suppressionContract SuppressionContract) (result SuppressionContract, err error)

Create enables the snoozed or dismissed attribute of a recommendation. The snoozed or dismissed attribute is referred to as a suppression. Use this API to create or update the snoozed or dismissed status of a recommendation. Parameters: resourceURI - the fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies. recommendationID - the recommendation ID. name - the name of the suppression. suppressionContract - the snoozed or dismissed attribute; for example, the snooze duration.

func (SuppressionsClient) CreatePreparer

func (client SuppressionsClient) CreatePreparer(ctx context.Context, resourceURI string, recommendationID string, name string, suppressionContract SuppressionContract) (*http.Request, error)

CreatePreparer prepares the Create request.

func (SuppressionsClient) CreateResponder

func (client SuppressionsClient) CreateResponder(resp *http.Response) (result SuppressionContract, err error)

CreateResponder handles the response to the Create request. The method always closes the http.Response Body.

func (SuppressionsClient) CreateSender

func (client SuppressionsClient) CreateSender(req *http.Request) (*http.Response, error)

CreateSender sends the Create request. The method will close the http.Response Body if it receives an error.

func (SuppressionsClient) Delete

func (client SuppressionsClient) Delete(ctx context.Context, resourceURI string, recommendationID string, name string) (result autorest.Response, err error)

Delete enables the activation of a snoozed or dismissed recommendation. The snoozed or dismissed attribute of a recommendation is referred to as a suppression. Parameters: resourceURI - the fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies. recommendationID - the recommendation ID. name - the name of the suppression.

func (SuppressionsClient) DeletePreparer

func (client SuppressionsClient) DeletePreparer(ctx context.Context, resourceURI string, recommendationID string, name string) (*http.Request, error)

DeletePreparer prepares the Delete request.

func (SuppressionsClient) DeleteResponder

func (client SuppressionsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error)

DeleteResponder handles the response to the Delete request. The method always closes the http.Response Body.

func (SuppressionsClient) DeleteSender

func (client SuppressionsClient) DeleteSender(req *http.Request) (*http.Response, error)

DeleteSender sends the Delete request. The method will close the http.Response Body if it receives an error.

func (SuppressionsClient) Get

func (client SuppressionsClient) Get(ctx context.Context, resourceURI string, recommendationID string, name string) (result SuppressionContract, err error)

Get obtains the details of a suppression. Parameters: resourceURI - the fully qualified Azure Resource Manager identifier of the resource to which the recommendation applies. recommendationID - the recommendation ID. name - the name of the suppression.

func (SuppressionsClient) GetPreparer

func (client SuppressionsClient) GetPreparer(ctx context.Context, resourceURI string, recommendationID string, name string) (*http.Request, error)

GetPreparer prepares the Get request.

func (SuppressionsClient) GetResponder

func (client SuppressionsClient) GetResponder(resp *http.Response) (result SuppressionContract, err error)

GetResponder handles the response to the Get request. The method always closes the http.Response Body.

func (SuppressionsClient) GetSender

func (client SuppressionsClient) GetSender(req *http.Request) (*http.Response, error)

GetSender sends the Get request. The method will close the http.Response Body if it receives an error.

func (SuppressionsClient) List

func (client SuppressionsClient) List(ctx context.Context) (result ListSuppressionContract, err error)

List retrieves the list of snoozed or dismissed suppressions for a subscription. The snoozed or dismissed attribute of a recommendation is referred to as a suppression.

func (SuppressionsClient) ListPreparer

func (client SuppressionsClient) ListPreparer(ctx context.Context) (*http.Request, error)

ListPreparer prepares the List request.

func (SuppressionsClient) ListResponder

func (client SuppressionsClient) ListResponder(resp *http.Response) (result ListSuppressionContract, err error)

ListResponder handles the response to the List request. The method always closes the http.Response Body.

func (SuppressionsClient) ListSender

func (client SuppressionsClient) ListSender(req *http.Request) (*http.Response, error)

ListSender sends the List request. The method will close the http.Response Body if it receives an error.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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