common

package
v0.0.0-...-96659ae Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2018 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package common is a generated protocol buffer package.

It is generated from these files:

google/cloud/support/common.proto

It has these top-level messages:

SupportAccount
Case
CustomerIssue
SupportRole
Comment
IssueTaxonomy

Index

Constants

This section is empty.

Variables

View Source
var Case_Priority_name = map[int32]string{
	0: "PRIORITY_UNSPECIFIED",
	1: "P0",
	2: "P1",
	3: "P2",
	4: "P3",
	5: "P4",
}
View Source
var Case_Priority_value = map[string]int32{
	"PRIORITY_UNSPECIFIED": 0,
	"P0":                   1,
	"P1":                   2,
	"P2":                   3,
	"P3":                   4,
	"P4":                   5,
}
View Source
var Case_State_name = map[int32]string{
	0: "STATE_UNSPECIFIED",
	1: "NEW",
	2: "ASSIGNED",
	3: "IN_PROGRESS_GOOGLE_SUPPORT",
	4: "IN_PROGRESS_GOOGLE_ENG",
	5: "IN_PROGRESS_KNOWN_ISSUE",
	6: "WAITING_FOR_CUSTOMER_RESPONSE",
	7: "SOLUTION_OFFERED",
	8: "CLOSED",
}
View Source
var Case_State_value = map[string]int32{
	"STATE_UNSPECIFIED":             0,
	"NEW":                           1,
	"ASSIGNED":                      2,
	"IN_PROGRESS_GOOGLE_SUPPORT":    3,
	"IN_PROGRESS_GOOGLE_ENG":        4,
	"IN_PROGRESS_KNOWN_ISSUE":       5,
	"WAITING_FOR_CUSTOMER_RESPONSE": 6,
	"SOLUTION_OFFERED":              7,
	"CLOSED":                        8,
}
View Source
var CustomerIssue_IssueState_name = map[int32]string{
	0: "ISSUE_STATE_UNSPECIFIED",
	1: "OPEN",
	2: "IN_PROGRESS",
	3: "FIXED",
	4: "WONT_FIX",
	5: "VERIFIED",
}
View Source
var CustomerIssue_IssueState_value = map[string]int32{
	"ISSUE_STATE_UNSPECIFIED": 0,
	"OPEN":                    1,
	"IN_PROGRESS":             2,
	"FIXED":                   3,
	"WONT_FIX":                4,
	"VERIFIED":                5,
}
View Source
var SupportAccount_PricingModel_name = map[int32]string{
	0: "PRICING_MODEL_UNKNOWN",
	1: "PACKAGES",
	2: "USER_ROLES",
}
View Source
var SupportAccount_PricingModel_value = map[string]int32{
	"PRICING_MODEL_UNKNOWN": 0,
	"PACKAGES":              1,
	"USER_ROLES":            2,
}
View Source
var SupportAccount_State_name = map[int32]string{
	0: "STATE_UNSPECIFIED",
	1: "ACTIVE",
	2: "PENDING",
	3: "PENDING_DELETION",
}
View Source
var SupportAccount_State_value = map[string]int32{
	"STATE_UNSPECIFIED": 0,
	"ACTIVE":            1,
	"PENDING":           2,
	"PENDING_DELETION":  3,
}
View Source
var SupportRole_Role_name = map[int32]string{
	0: "ROLE_UNSPECIFIED",
	1: "BASIC",
	2: "DEVELOPER",
	3: "OPERATION",
	4: "SITE_RELIABILITY",
}
View Source
var SupportRole_Role_value = map[string]int32{
	"ROLE_UNSPECIFIED": 0,
	"BASIC":            1,
	"DEVELOPER":        2,
	"OPERATION":        3,
	"SITE_RELIABILITY": 4,
}

Functions

This section is empty.

Types

type Case

type Case struct {
	// The resource name for the Case in format
	// `supportAccounts/{account_id}/cases/{case_id}`
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// The short summary of the issue reported in this case.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
	// The board description of issue provided with initial summary.
	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
	// The product component for which this Case is reported.
	Component string `protobuf:"bytes,4,opt,name=component" json:"component,omitempty"`
	// The product subcomponent for which this Case is reported.
	Subcomponent string `protobuf:"bytes,5,opt,name=subcomponent" json:"subcomponent,omitempty"`
	// Timezone the client sending this request is in.
	// It should be in a format IANA recognizes: https://www.iana.org/time-zone
	// There is no additional validation done by the API.
	ClientTimezone string `protobuf:"bytes,6,opt,name=client_timezone,json=clientTimezone" json:"client_timezone,omitempty"`
	// The email addresses that can be copied to receive updates on this case.
	// Users can specify a maximum of 10 email addresses.
	CcAddresses []string `protobuf:"bytes,7,rep,name=cc_addresses,json=ccAddresses" json:"cc_addresses,omitempty"`
	// The Google Cloud Platform project ID for which this case is created.
	ProjectId string `protobuf:"bytes,8,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
	// List of customer issues associated with this case.
	Issues []*CustomerIssue `protobuf:"bytes,10,rep,name=issues" json:"issues,omitempty"`
	// The current priority of this case.
	Priority Case_Priority `protobuf:"varint,11,opt,name=priority,enum=google.cloud.support.common.Case_Priority" json:"priority,omitempty"`
	// The current state of this case.
	State Case_State `protobuf:"varint,12,opt,name=state,enum=google.cloud.support.common.Case_State" json:"state,omitempty"`
	// Time when this case was created.
	// Output only.
	CreateTime *google_protobuf1.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
	// Time when this case was last updated.
	// Output only.
	UpdateTime *google_protobuf1.Timestamp `protobuf:"bytes,14,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
	// Email address of user who created this case.
	// Output only. It is inferred from credentials supplied during case creation.
	CreatorEmail string `protobuf:"bytes,15,opt,name=creator_email,json=creatorEmail" json:"creator_email,omitempty"`
	// The issue category applicable to this case.
	Category string `protobuf:"bytes,16,opt,name=category" json:"category,omitempty"`
}

A support case created by the user.

func (*Case) Descriptor

func (*Case) Descriptor() ([]byte, []int)

func (*Case) GetCategory

func (m *Case) GetCategory() string

func (*Case) GetCcAddresses

func (m *Case) GetCcAddresses() []string

func (*Case) GetClientTimezone

func (m *Case) GetClientTimezone() string

func (*Case) GetComponent

func (m *Case) GetComponent() string

func (*Case) GetCreateTime

func (m *Case) GetCreateTime() *google_protobuf1.Timestamp

func (*Case) GetCreatorEmail

func (m *Case) GetCreatorEmail() string

func (*Case) GetDescription

func (m *Case) GetDescription() string

func (*Case) GetDisplayName

func (m *Case) GetDisplayName() string

func (*Case) GetIssues

func (m *Case) GetIssues() []*CustomerIssue

func (*Case) GetName

func (m *Case) GetName() string

func (*Case) GetPriority

func (m *Case) GetPriority() Case_Priority

func (*Case) GetProjectId

func (m *Case) GetProjectId() string

func (*Case) GetState

func (m *Case) GetState() Case_State

func (*Case) GetSubcomponent

func (m *Case) GetSubcomponent() string

func (*Case) GetUpdateTime

func (m *Case) GetUpdateTime() *google_protobuf1.Timestamp

func (*Case) ProtoMessage

func (*Case) ProtoMessage()

func (*Case) Reset

func (m *Case) Reset()

func (*Case) String

func (m *Case) String() string

type Case_Priority

type Case_Priority int32

The case priority with P0 being the most urgent and P4 the least.

const (
	// Priority is undefined or has not been set yet.
	Case_PRIORITY_UNSPECIFIED Case_Priority = 0
	// Extreme impact on a production service - Service is hard down.
	Case_P0 Case_Priority = 1
	// Critical impact on a production service - Service is currently unusable.
	Case_P1 Case_Priority = 2
	// Severe impact on a production service - Service is usable but greatly
	// impaired.
	Case_P2 Case_Priority = 3
	// Medium impact on a production service - Service is available, but
	// moderately impaired.
	Case_P3 Case_Priority = 4
	// General questions or minor issues - Production service is fully
	// available.
	Case_P4 Case_Priority = 5
)

func (Case_Priority) EnumDescriptor

func (Case_Priority) EnumDescriptor() ([]byte, []int)

func (Case_Priority) String

func (x Case_Priority) String() string

type Case_State

type Case_State int32

The state of a case.

const (
	// Case is in an unknown state.
	Case_STATE_UNSPECIFIED Case_State = 0
	// Case has been created but no one is assigned to work on it yet.
	Case_NEW Case_State = 1
	// Case has been assigned to a support agent.
	Case_ASSIGNED Case_State = 2
	// A support agent is currently investigating the case.
	Case_IN_PROGRESS_GOOGLE_SUPPORT Case_State = 3
	// Case has been forwarded to product team for further investigation.
	Case_IN_PROGRESS_GOOGLE_ENG Case_State = 4
	// Case is under investigation and relates to a known issue.
	Case_IN_PROGRESS_KNOWN_ISSUE Case_State = 5
	// Case is waiting for a response from the customer.
	Case_WAITING_FOR_CUSTOMER_RESPONSE Case_State = 6
	// A solution has been offered for the case but it isn't closed yet.
	Case_SOLUTION_OFFERED Case_State = 7
	// Cases has been fully resolved and is in a closed state.
	Case_CLOSED Case_State = 8
)

func (Case_State) EnumDescriptor

func (Case_State) EnumDescriptor() ([]byte, []int)

func (Case_State) String

func (x Case_State) String() string

type Comment

type Comment struct {
	// Text containing a maximum of 3000 characters.
	Text string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
	// Time when this update was created.
	// Output only.
	CreateTime *google_protobuf1.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
	// The email address/name of user who created this comment.
	// Output only.
	Author string `protobuf:"bytes,3,opt,name=author" json:"author,omitempty"`
	// The resource name for this comment in format
	// `supportAccounts/{account_id}/cases/{case_id}/{comment_id}`.
	// Output only.
	Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"`
}

The comment text associated with a `Case`.

func (*Comment) Descriptor

func (*Comment) Descriptor() ([]byte, []int)

func (*Comment) GetAuthor

func (m *Comment) GetAuthor() string

func (*Comment) GetCreateTime

func (m *Comment) GetCreateTime() *google_protobuf1.Timestamp

func (*Comment) GetName

func (m *Comment) GetName() string

func (*Comment) GetText

func (m *Comment) GetText() string

func (*Comment) ProtoMessage

func (*Comment) ProtoMessage()

func (*Comment) Reset

func (m *Comment) Reset()

func (*Comment) String

func (m *Comment) String() string

type CustomerIssue

type CustomerIssue struct {
	// Unique identifier for the internal issue.
	// Output only.
	IssueId string `protobuf:"bytes,1,opt,name=issue_id,json=issueId" json:"issue_id,omitempty"`
	// Represents current status of the internal ticket.
	// Output only.
	State CustomerIssue_IssueState `protobuf:"varint,2,opt,name=state,enum=google.cloud.support.common.CustomerIssue_IssueState" json:"state,omitempty"`
	// Time when the internal issue was created.
	// Output only.
	CreateTime *google_protobuf1.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
	// Time when the internal issue was marked as resolved.
	// Output only.
	ResolveTime *google_protobuf1.Timestamp `protobuf:"bytes,4,opt,name=resolve_time,json=resolveTime" json:"resolve_time,omitempty"`
	// Time when the internal issue was last updated.
	// Output only.
	UpdateTime *google_protobuf1.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime" json:"update_time,omitempty"`
}

Reference to a Google internal ticket used for investigating a support case. Not every support case will have an internal ticket associated with it. A support case can have multiple tickets linked to it.

func (*CustomerIssue) Descriptor

func (*CustomerIssue) Descriptor() ([]byte, []int)

func (*CustomerIssue) GetCreateTime

func (m *CustomerIssue) GetCreateTime() *google_protobuf1.Timestamp

func (*CustomerIssue) GetIssueId

func (m *CustomerIssue) GetIssueId() string

func (*CustomerIssue) GetResolveTime

func (m *CustomerIssue) GetResolveTime() *google_protobuf1.Timestamp

func (*CustomerIssue) GetState

func (*CustomerIssue) GetUpdateTime

func (m *CustomerIssue) GetUpdateTime() *google_protobuf1.Timestamp

func (*CustomerIssue) ProtoMessage

func (*CustomerIssue) ProtoMessage()

func (*CustomerIssue) Reset

func (m *CustomerIssue) Reset()

func (*CustomerIssue) String

func (m *CustomerIssue) String() string

type CustomerIssue_IssueState

type CustomerIssue_IssueState int32

The status of a customer issue.

const (
	// Issue in an unknown state.
	CustomerIssue_ISSUE_STATE_UNSPECIFIED CustomerIssue_IssueState = 0
	// Issue is currently open but the work on it has not been started.
	CustomerIssue_OPEN CustomerIssue_IssueState = 1
	// Issue is currently being worked on.
	CustomerIssue_IN_PROGRESS CustomerIssue_IssueState = 2
	// Issue is fixed.
	CustomerIssue_FIXED CustomerIssue_IssueState = 3
	// Issue has been marked as invalid.
	CustomerIssue_WONT_FIX CustomerIssue_IssueState = 4
	// Issue verified and in production.
	CustomerIssue_VERIFIED CustomerIssue_IssueState = 5
)

func (CustomerIssue_IssueState) EnumDescriptor

func (CustomerIssue_IssueState) EnumDescriptor() ([]byte, []int)

func (CustomerIssue_IssueState) String

func (x CustomerIssue_IssueState) String() string

type IssueTaxonomy

type IssueTaxonomy struct {
	// Map of available categories.
	Categories map[string]*IssueTaxonomy_Category `` /* 140-byte string literal not displayed */
}

Represents the product component taxonomy that is to be used while creating or updating a `Case`. A client should obtain the list of issue categories, component/subcomponent from this object and specify it in `Case.category`, `Case.component` and `Case.subcomponent` fields respectively.

func (*IssueTaxonomy) Descriptor

func (*IssueTaxonomy) Descriptor() ([]byte, []int)

func (*IssueTaxonomy) GetCategories

func (m *IssueTaxonomy) GetCategories() map[string]*IssueTaxonomy_Category

func (*IssueTaxonomy) ProtoMessage

func (*IssueTaxonomy) ProtoMessage()

func (*IssueTaxonomy) Reset

func (m *IssueTaxonomy) Reset()

func (*IssueTaxonomy) String

func (m *IssueTaxonomy) String() string

type IssueTaxonomy_Category

type IssueTaxonomy_Category struct {
	// User friendly name of this category.
	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
	// Map of product components under this category.
	Components map[string]*IssueTaxonomy_Component `` /* 140-byte string literal not displayed */
}

Represents the category of issue (Technical or Non-Technical) reported through a support case.

func (*IssueTaxonomy_Category) Descriptor

func (*IssueTaxonomy_Category) Descriptor() ([]byte, []int)

func (*IssueTaxonomy_Category) GetComponents

func (m *IssueTaxonomy_Category) GetComponents() map[string]*IssueTaxonomy_Component

func (*IssueTaxonomy_Category) GetDisplayName

func (m *IssueTaxonomy_Category) GetDisplayName() string

func (*IssueTaxonomy_Category) ProtoMessage

func (*IssueTaxonomy_Category) ProtoMessage()

func (*IssueTaxonomy_Category) Reset

func (m *IssueTaxonomy_Category) Reset()

func (*IssueTaxonomy_Category) String

func (m *IssueTaxonomy_Category) String() string

type IssueTaxonomy_Component

type IssueTaxonomy_Component struct {
	// User friendly name of this component.
	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
	// List of languages in which a support case can be created under this
	// component. Represented by language codes in ISO_639-1 standard.
	Languages []string `protobuf:"bytes,2,rep,name=languages" json:"languages,omitempty"`
	// Template to be used while filling the description of a support case.
	Template string `protobuf:"bytes,3,opt,name=template" json:"template,omitempty"`
	// List of subcomponents under this component.
	Subcomponents []*IssueTaxonomy_Component `protobuf:"bytes,4,rep,name=subcomponents" json:"subcomponents,omitempty"`
}

The representation of a product component. It is composed of a canonical name for the product (e.g., Google App Engine), languages in which a support ticket can be created under this component, a template that provides hints on important details to be filled out before submitting a case. It also contains an embedded list of product subcomponents that have similar attributes as top-level components. (e.g., Google App Engine > Memcache).

func (*IssueTaxonomy_Component) Descriptor

func (*IssueTaxonomy_Component) Descriptor() ([]byte, []int)

func (*IssueTaxonomy_Component) GetDisplayName

func (m *IssueTaxonomy_Component) GetDisplayName() string

func (*IssueTaxonomy_Component) GetLanguages

func (m *IssueTaxonomy_Component) GetLanguages() []string

func (*IssueTaxonomy_Component) GetSubcomponents

func (m *IssueTaxonomy_Component) GetSubcomponents() []*IssueTaxonomy_Component

func (*IssueTaxonomy_Component) GetTemplate

func (m *IssueTaxonomy_Component) GetTemplate() string

func (*IssueTaxonomy_Component) ProtoMessage

func (*IssueTaxonomy_Component) ProtoMessage()

func (*IssueTaxonomy_Component) Reset

func (m *IssueTaxonomy_Component) Reset()

func (*IssueTaxonomy_Component) String

func (m *IssueTaxonomy_Component) String() string

type SupportAccount

type SupportAccount struct {
	// The resource name for a support account in format
	// `supportAccounts/{account_id}`.
	// Output only.
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// Identifier for this entity that gets persisted in storage system. The
	// resource name is populated using this field in format
	// `supportAccounts/{account_id}`.
	AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
	// The Cloud resource with which this support account is associated.
	CloudResource string `protobuf:"bytes,3,opt,name=cloud_resource,json=cloudResource" json:"cloud_resource,omitempty"`
	// A user friendly display name assigned to this support account.
	DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
	// Indicates the current state of an account.
	State SupportAccount_State `protobuf:"varint,5,opt,name=state,enum=google.cloud.support.common.SupportAccount_State" json:"state,omitempty"`
	// Time when this account was created.
	// Output only.
	CreateTime *google_protobuf1.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
	// The resource name of a billing account associated with this support
	// account. For example, `billingAccounts/ABCDEF-012345-567890`.
	BillingAccountName string `protobuf:"bytes,7,opt,name=billing_account_name,json=billingAccountName" json:"billing_account_name,omitempty"`
	UnifyAccountId     string `protobuf:"bytes,8,opt,name=unify_account_id,json=unifyAccountId" json:"unify_account_id,omitempty"`
	// The PricingModel applicable to this support account.
	PricingModel SupportAccount_PricingModel `` /* 152-byte string literal not displayed */
}

A Google Cloud Platform account that identifies support eligibility for a Cloud resource. Currently the Cloud resource can only be an Organization but this might change in future.

func (*SupportAccount) Descriptor

func (*SupportAccount) Descriptor() ([]byte, []int)

func (*SupportAccount) GetAccountId

func (m *SupportAccount) GetAccountId() string

func (*SupportAccount) GetBillingAccountName

func (m *SupportAccount) GetBillingAccountName() string

func (*SupportAccount) GetCloudResource

func (m *SupportAccount) GetCloudResource() string

func (*SupportAccount) GetCreateTime

func (m *SupportAccount) GetCreateTime() *google_protobuf1.Timestamp

func (*SupportAccount) GetDisplayName

func (m *SupportAccount) GetDisplayName() string

func (*SupportAccount) GetName

func (m *SupportAccount) GetName() string

func (*SupportAccount) GetPricingModel

func (m *SupportAccount) GetPricingModel() SupportAccount_PricingModel

func (*SupportAccount) GetState

func (m *SupportAccount) GetState() SupportAccount_State

func (*SupportAccount) GetUnifyAccountId

func (m *SupportAccount) GetUnifyAccountId() string

func (*SupportAccount) ProtoMessage

func (*SupportAccount) ProtoMessage()

func (*SupportAccount) Reset

func (m *SupportAccount) Reset()

func (*SupportAccount) String

func (m *SupportAccount) String() string

type SupportAccount_PricingModel

type SupportAccount_PricingModel int32

Pricing model applicable to this support account.

const (
	// This account is subscribed to an unknown pricing model.
	SupportAccount_PRICING_MODEL_UNKNOWN SupportAccount_PricingModel = 0
	// Package based pricing (Platinum, Gold, Silver, Bronze).
	SupportAccount_PACKAGES SupportAccount_PricingModel = 1
	// Support charges are calculated based on user seats a.k.a,
	// "Pick Your Team" model.
	SupportAccount_USER_ROLES SupportAccount_PricingModel = 2
)

func (SupportAccount_PricingModel) EnumDescriptor

func (SupportAccount_PricingModel) EnumDescriptor() ([]byte, []int)

func (SupportAccount_PricingModel) String

type SupportAccount_State

type SupportAccount_State int32

The current state of this SupportAccount.

const (
	// Account is in an unknown state.
	SupportAccount_STATE_UNSPECIFIED SupportAccount_State = 0
	// Account is in an active state.
	SupportAccount_ACTIVE SupportAccount_State = 1
	// Account has been created but is being provisioned in support systems.
	SupportAccount_PENDING SupportAccount_State = 2
	// Account deletion has been requested by the user.
	SupportAccount_PENDING_DELETION SupportAccount_State = 3
)

func (SupportAccount_State) EnumDescriptor

func (SupportAccount_State) EnumDescriptor() ([]byte, []int)

func (SupportAccount_State) String

func (x SupportAccount_State) String() string

type SupportRole

type SupportRole struct {
	// Email address of user being added through this Role.
	Email string `protobuf:"bytes,1,opt,name=email" json:"email,omitempty"`
	// The type of role assigned to user.
	Role SupportRole_Role `protobuf:"varint,2,opt,name=role,enum=google.cloud.support.common.SupportRole_Role" json:"role,omitempty"`
}

A message that contains mapping of a user and their role under a support account.

func (*SupportRole) Descriptor

func (*SupportRole) Descriptor() ([]byte, []int)

func (*SupportRole) GetEmail

func (m *SupportRole) GetEmail() string

func (*SupportRole) GetRole

func (m *SupportRole) GetRole() SupportRole_Role

func (*SupportRole) ProtoMessage

func (*SupportRole) ProtoMessage()

func (*SupportRole) Reset

func (m *SupportRole) Reset()

func (*SupportRole) String

func (m *SupportRole) String() string

type SupportRole_Role

type SupportRole_Role int32

A role which determines the support resources and features a user might get access to.

const (
	// An unknown role.
	SupportRole_ROLE_UNSPECIFIED SupportRole_Role = 0
	// The basic support role.
	SupportRole_BASIC SupportRole_Role = 1
	// The developer role.
	SupportRole_DEVELOPER SupportRole_Role = 2
	// The operation role.
	SupportRole_OPERATION SupportRole_Role = 3
	// The site reliability role.
	SupportRole_SITE_RELIABILITY SupportRole_Role = 4
)

func (SupportRole_Role) EnumDescriptor

func (SupportRole_Role) EnumDescriptor() ([]byte, []int)

func (SupportRole_Role) String

func (x SupportRole_Role) String() string

Jump to

Keyboard shortcuts

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