v1

package
v0.5.360 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2022 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package v1 is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Index

Constants

This section is empty.

Variables

View Source
var ApiTokenService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "github.com.metaprov.modelaapi.services.apitoken.v1.ApiTokenService",
	HandlerType: (*ApiTokenServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListApiTokens",
			Handler:    _ApiTokenService_ListApiTokens_Handler,
		},
		{
			MethodName: "CreateApiToken",
			Handler:    _ApiTokenService_CreateApiToken_Handler,
		},
		{
			MethodName: "GetApiToken",
			Handler:    _ApiTokenService_GetApiToken_Handler,
		},
		{
			MethodName: "UpdateApiToken",
			Handler:    _ApiTokenService_UpdateApiToken_Handler,
		},
		{
			MethodName: "DeleteApiToken",
			Handler:    _ApiTokenService_DeleteApiToken_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "github.com/metaprov/modelaapi/services/apitoken/v1/apitoken.proto",
}

ApiTokenService_ServiceDesc is the grpc.ServiceDesc for ApiTokenService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_github_com_metaprov_modelaapi_services_apitoken_v1_apitoken_proto protoreflect.FileDescriptor

Functions

func RegisterApiTokenServiceHandler added in v0.4.687

func RegisterApiTokenServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterApiTokenServiceHandler registers the http handlers for service ApiTokenService to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterApiTokenServiceHandlerClient added in v0.4.687

func RegisterApiTokenServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ApiTokenServiceClient) error

RegisterApiTokenServiceHandlerClient registers the http handlers for service ApiTokenService to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ApiTokenServiceClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ApiTokenServiceClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "ApiTokenServiceClient" to call the correct interceptors.

func RegisterApiTokenServiceHandlerFromEndpoint added in v0.4.687

func RegisterApiTokenServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterApiTokenServiceHandlerFromEndpoint is same as RegisterApiTokenServiceHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterApiTokenServiceHandlerServer added in v0.4.687

func RegisterApiTokenServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ApiTokenServiceServer) error

RegisterApiTokenServiceHandlerServer registers the http handlers for service ApiTokenService to "mux". UnaryRPC :call ApiTokenServiceServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterApiTokenServiceHandlerFromEndpoint instead.

func RegisterApiTokenServiceServer

func RegisterApiTokenServiceServer(s grpc.ServiceRegistrar, srv ApiTokenServiceServer)

Types

type ApiTokenCreateResponse

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

func (*ApiTokenCreateResponse) Descriptor deprecated

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

Deprecated: Use ApiTokenCreateResponse.ProtoReflect.Descriptor instead.

func (*ApiTokenCreateResponse) ProtoMessage

func (*ApiTokenCreateResponse) ProtoMessage()

func (*ApiTokenCreateResponse) ProtoReflect

func (x *ApiTokenCreateResponse) ProtoReflect() protoreflect.Message

func (*ApiTokenCreateResponse) Reset

func (x *ApiTokenCreateResponse) Reset()

func (*ApiTokenCreateResponse) String

func (x *ApiTokenCreateResponse) String() string

type ApiTokenLoginRequest

type ApiTokenLoginRequest struct {
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Name      string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Password  string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
	// contains filtered or unexported fields
}

func (*ApiTokenLoginRequest) Descriptor deprecated

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

Deprecated: Use ApiTokenLoginRequest.ProtoReflect.Descriptor instead.

func (*ApiTokenLoginRequest) GetName

func (x *ApiTokenLoginRequest) GetName() string

func (*ApiTokenLoginRequest) GetNamespace

func (x *ApiTokenLoginRequest) GetNamespace() string

func (*ApiTokenLoginRequest) GetPassword

func (x *ApiTokenLoginRequest) GetPassword() string

func (*ApiTokenLoginRequest) ProtoMessage

func (*ApiTokenLoginRequest) ProtoMessage()

func (*ApiTokenLoginRequest) ProtoReflect

func (x *ApiTokenLoginRequest) ProtoReflect() protoreflect.Message

func (*ApiTokenLoginRequest) Reset

func (x *ApiTokenLoginRequest) Reset()

func (*ApiTokenLoginRequest) String

func (x *ApiTokenLoginRequest) String() string

type ApiTokenLoginResponse

type ApiTokenLoginResponse struct {
	Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` // jwt token
	// contains filtered or unexported fields
}

func (*ApiTokenLoginResponse) Descriptor deprecated

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

Deprecated: Use ApiTokenLoginResponse.ProtoReflect.Descriptor instead.

func (*ApiTokenLoginResponse) GetToken

func (x *ApiTokenLoginResponse) GetToken() string

func (*ApiTokenLoginResponse) ProtoMessage

func (*ApiTokenLoginResponse) ProtoMessage()

func (*ApiTokenLoginResponse) ProtoReflect

func (x *ApiTokenLoginResponse) ProtoReflect() protoreflect.Message

func (*ApiTokenLoginResponse) Reset

func (x *ApiTokenLoginResponse) Reset()

func (*ApiTokenLoginResponse) String

func (x *ApiTokenLoginResponse) String() string

type ApiTokenResponse

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

func (*ApiTokenResponse) Descriptor deprecated

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

Deprecated: Use ApiTokenResponse.ProtoReflect.Descriptor instead.

func (*ApiTokenResponse) ProtoMessage

func (*ApiTokenResponse) ProtoMessage()

func (*ApiTokenResponse) ProtoReflect

func (x *ApiTokenResponse) ProtoReflect() protoreflect.Message

func (*ApiTokenResponse) Reset

func (x *ApiTokenResponse) Reset()

func (*ApiTokenResponse) String

func (x *ApiTokenResponse) String() string

type ApiTokenServiceClient

type ApiTokenServiceClient interface {
	ListApiTokens(ctx context.Context, in *ListApiTokensRequest, opts ...grpc.CallOption) (*ListApiTokensResponse, error)
	CreateApiToken(ctx context.Context, in *CreateApiTokenRequest, opts ...grpc.CallOption) (*CreateApiTokenResponse, error)
	GetApiToken(ctx context.Context, in *GetApiTokenRequest, opts ...grpc.CallOption) (*GetApiTokenResponse, error)
	UpdateApiToken(ctx context.Context, in *UpdateApiTokenRequest, opts ...grpc.CallOption) (*UpdateApiTokenResponse, error)
	DeleteApiToken(ctx context.Context, in *DeleteApiTokenRequest, opts ...grpc.CallOption) (*DeleteApiTokenResponse, error)
}

ApiTokenServiceClient is the client API for ApiTokenService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type ApiTokenServiceServer

type ApiTokenServiceServer interface {
	ListApiTokens(context.Context, *ListApiTokensRequest) (*ListApiTokensResponse, error)
	CreateApiToken(context.Context, *CreateApiTokenRequest) (*CreateApiTokenResponse, error)
	GetApiToken(context.Context, *GetApiTokenRequest) (*GetApiTokenResponse, error)
	UpdateApiToken(context.Context, *UpdateApiTokenRequest) (*UpdateApiTokenResponse, error)
	DeleteApiToken(context.Context, *DeleteApiTokenRequest) (*DeleteApiTokenResponse, error)
	// contains filtered or unexported methods
}

ApiTokenServiceServer is the server API for ApiTokenService service. All implementations must embed UnimplementedApiTokenServiceServer for forward compatibility

type CreateApiTokenRequest

type CreateApiTokenRequest struct {
	Apitoken *v1alpha1.ApiToken `protobuf:"bytes,1,opt,name=apitoken,proto3" json:"apitoken,omitempty"`
	Password string             `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateApiTokenRequest) Descriptor deprecated

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

Deprecated: Use CreateApiTokenRequest.ProtoReflect.Descriptor instead.

func (*CreateApiTokenRequest) GetApitoken added in v0.4.475

func (x *CreateApiTokenRequest) GetApitoken() *v1alpha1.ApiToken

func (*CreateApiTokenRequest) GetPassword

func (x *CreateApiTokenRequest) GetPassword() string

func (*CreateApiTokenRequest) ProtoMessage

func (*CreateApiTokenRequest) ProtoMessage()

func (*CreateApiTokenRequest) ProtoReflect

func (x *CreateApiTokenRequest) ProtoReflect() protoreflect.Message

func (*CreateApiTokenRequest) Reset

func (x *CreateApiTokenRequest) Reset()

func (*CreateApiTokenRequest) String

func (x *CreateApiTokenRequest) String() string

type CreateApiTokenResponse

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

func (*CreateApiTokenResponse) Descriptor deprecated

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

Deprecated: Use CreateApiTokenResponse.ProtoReflect.Descriptor instead.

func (*CreateApiTokenResponse) ProtoMessage

func (*CreateApiTokenResponse) ProtoMessage()

func (*CreateApiTokenResponse) ProtoReflect

func (x *CreateApiTokenResponse) ProtoReflect() protoreflect.Message

func (*CreateApiTokenResponse) Reset

func (x *CreateApiTokenResponse) Reset()

func (*CreateApiTokenResponse) String

func (x *CreateApiTokenResponse) String() string

type DeleteApiTokenRequest

type DeleteApiTokenRequest struct {
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Name      string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*DeleteApiTokenRequest) Descriptor deprecated

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

Deprecated: Use DeleteApiTokenRequest.ProtoReflect.Descriptor instead.

func (*DeleteApiTokenRequest) GetName

func (x *DeleteApiTokenRequest) GetName() string

func (*DeleteApiTokenRequest) GetNamespace

func (x *DeleteApiTokenRequest) GetNamespace() string

func (*DeleteApiTokenRequest) ProtoMessage

func (*DeleteApiTokenRequest) ProtoMessage()

func (*DeleteApiTokenRequest) ProtoReflect

func (x *DeleteApiTokenRequest) ProtoReflect() protoreflect.Message

func (*DeleteApiTokenRequest) Reset

func (x *DeleteApiTokenRequest) Reset()

func (*DeleteApiTokenRequest) String

func (x *DeleteApiTokenRequest) String() string

type DeleteApiTokenResponse

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

func (*DeleteApiTokenResponse) Descriptor deprecated

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

Deprecated: Use DeleteApiTokenResponse.ProtoReflect.Descriptor instead.

func (*DeleteApiTokenResponse) ProtoMessage

func (*DeleteApiTokenResponse) ProtoMessage()

func (*DeleteApiTokenResponse) ProtoReflect

func (x *DeleteApiTokenResponse) ProtoReflect() protoreflect.Message

func (*DeleteApiTokenResponse) Reset

func (x *DeleteApiTokenResponse) Reset()

func (*DeleteApiTokenResponse) String

func (x *DeleteApiTokenResponse) String() string

type GetApiTokenNamespacesRequest

type GetApiTokenNamespacesRequest struct {
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Name      string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*GetApiTokenNamespacesRequest) Descriptor deprecated

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

Deprecated: Use GetApiTokenNamespacesRequest.ProtoReflect.Descriptor instead.

func (*GetApiTokenNamespacesRequest) GetName

func (x *GetApiTokenNamespacesRequest) GetName() string

func (*GetApiTokenNamespacesRequest) GetNamespace

func (x *GetApiTokenNamespacesRequest) GetNamespace() string

func (*GetApiTokenNamespacesRequest) ProtoMessage

func (*GetApiTokenNamespacesRequest) ProtoMessage()

func (*GetApiTokenNamespacesRequest) ProtoReflect

func (*GetApiTokenNamespacesRequest) Reset

func (x *GetApiTokenNamespacesRequest) Reset()

func (*GetApiTokenNamespacesRequest) String

type GetApiTokenNamespacesResponse

type GetApiTokenNamespacesResponse struct {
	Namespaces []*v1.NamespaceInfo `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"`
	// contains filtered or unexported fields
}

func (*GetApiTokenNamespacesResponse) Descriptor deprecated

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

Deprecated: Use GetApiTokenNamespacesResponse.ProtoReflect.Descriptor instead.

func (*GetApiTokenNamespacesResponse) GetNamespaces

func (x *GetApiTokenNamespacesResponse) GetNamespaces() []*v1.NamespaceInfo

func (*GetApiTokenNamespacesResponse) ProtoMessage

func (*GetApiTokenNamespacesResponse) ProtoMessage()

func (*GetApiTokenNamespacesResponse) ProtoReflect

func (*GetApiTokenNamespacesResponse) Reset

func (x *GetApiTokenNamespacesResponse) Reset()

func (*GetApiTokenNamespacesResponse) String

type GetApiTokenRequest

type GetApiTokenRequest struct {
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Name      string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*GetApiTokenRequest) Descriptor deprecated

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

Deprecated: Use GetApiTokenRequest.ProtoReflect.Descriptor instead.

func (*GetApiTokenRequest) GetName

func (x *GetApiTokenRequest) GetName() string

func (*GetApiTokenRequest) GetNamespace

func (x *GetApiTokenRequest) GetNamespace() string

func (*GetApiTokenRequest) ProtoMessage

func (*GetApiTokenRequest) ProtoMessage()

func (*GetApiTokenRequest) ProtoReflect

func (x *GetApiTokenRequest) ProtoReflect() protoreflect.Message

func (*GetApiTokenRequest) Reset

func (x *GetApiTokenRequest) Reset()

func (*GetApiTokenRequest) String

func (x *GetApiTokenRequest) String() string

type GetApiTokenResponse

type GetApiTokenResponse struct {
	Apitoken *v1alpha1.ApiToken `protobuf:"bytes,1,opt,name=apitoken,proto3" json:"apitoken,omitempty"`
	Yaml     string             `protobuf:"bytes,2,opt,name=yaml,proto3" json:"yaml,omitempty"`
	// contains filtered or unexported fields
}

func (*GetApiTokenResponse) Descriptor deprecated

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

Deprecated: Use GetApiTokenResponse.ProtoReflect.Descriptor instead.

func (*GetApiTokenResponse) GetApitoken added in v0.4.475

func (x *GetApiTokenResponse) GetApitoken() *v1alpha1.ApiToken

func (*GetApiTokenResponse) GetYaml

func (x *GetApiTokenResponse) GetYaml() string

func (*GetApiTokenResponse) ProtoMessage

func (*GetApiTokenResponse) ProtoMessage()

func (*GetApiTokenResponse) ProtoReflect

func (x *GetApiTokenResponse) ProtoReflect() protoreflect.Message

func (*GetApiTokenResponse) Reset

func (x *GetApiTokenResponse) Reset()

func (*GetApiTokenResponse) String

func (x *GetApiTokenResponse) String() string

type ListApiTokensRequest

type ListApiTokensRequest struct {
	Namespace string            `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Labels    map[string]string `` /* 153-byte string literal not displayed */
	PageSize  int32             `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	PageToken string            `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	OrderBy   string            `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	// contains filtered or unexported fields
}

func (*ListApiTokensRequest) Descriptor deprecated

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

Deprecated: Use ListApiTokensRequest.ProtoReflect.Descriptor instead.

func (*ListApiTokensRequest) GetLabels

func (x *ListApiTokensRequest) GetLabels() map[string]string

func (*ListApiTokensRequest) GetNamespace

func (x *ListApiTokensRequest) GetNamespace() string

func (*ListApiTokensRequest) GetOrderBy added in v0.4.414

func (x *ListApiTokensRequest) GetOrderBy() string

func (*ListApiTokensRequest) GetPageSize added in v0.4.414

func (x *ListApiTokensRequest) GetPageSize() int32

func (*ListApiTokensRequest) GetPageToken added in v0.4.414

func (x *ListApiTokensRequest) GetPageToken() string

func (*ListApiTokensRequest) ProtoMessage

func (*ListApiTokensRequest) ProtoMessage()

func (*ListApiTokensRequest) ProtoReflect

func (x *ListApiTokensRequest) ProtoReflect() protoreflect.Message

func (*ListApiTokensRequest) Reset

func (x *ListApiTokensRequest) Reset()

func (*ListApiTokensRequest) String

func (x *ListApiTokensRequest) String() string

type ListApiTokensResponse

type ListApiTokensResponse struct {
	Apitokens     *v1alpha1.ApiTokenList `protobuf:"bytes,1,opt,name=apitokens,proto3" json:"apitokens,omitempty"`
	NextPageToken string                 `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// contains filtered or unexported fields
}

func (*ListApiTokensResponse) Descriptor deprecated

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

Deprecated: Use ListApiTokensResponse.ProtoReflect.Descriptor instead.

func (*ListApiTokensResponse) GetApitokens added in v0.4.471

func (x *ListApiTokensResponse) GetApitokens() *v1alpha1.ApiTokenList

func (*ListApiTokensResponse) GetNextPageToken added in v0.4.471

func (x *ListApiTokensResponse) GetNextPageToken() string

func (*ListApiTokensResponse) ProtoMessage

func (*ListApiTokensResponse) ProtoMessage()

func (*ListApiTokensResponse) ProtoReflect

func (x *ListApiTokensResponse) ProtoReflect() protoreflect.Message

func (*ListApiTokensResponse) Reset

func (x *ListApiTokensResponse) Reset()

func (*ListApiTokensResponse) String

func (x *ListApiTokensResponse) String() string

type UnimplementedApiTokenServiceServer

type UnimplementedApiTokenServiceServer struct {
}

UnimplementedApiTokenServiceServer must be embedded to have forward compatible implementations.

func (UnimplementedApiTokenServiceServer) CreateApiToken

func (UnimplementedApiTokenServiceServer) DeleteApiToken

func (UnimplementedApiTokenServiceServer) GetApiToken

func (UnimplementedApiTokenServiceServer) ListApiTokens

func (UnimplementedApiTokenServiceServer) UpdateApiToken

type UnsafeApiTokenServiceServer added in v0.4.687

type UnsafeApiTokenServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeApiTokenServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to ApiTokenServiceServer will result in compilation errors.

type UpdateApiTokenRequest

type UpdateApiTokenRequest struct {
	Apitoken   *v1alpha1.ApiToken    `protobuf:"bytes,1,opt,name=apitoken,proto3" json:"apitoken,omitempty"`
	UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateApiTokenRequest) Descriptor deprecated

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

Deprecated: Use UpdateApiTokenRequest.ProtoReflect.Descriptor instead.

func (*UpdateApiTokenRequest) GetApitoken added in v0.4.475

func (x *UpdateApiTokenRequest) GetApitoken() *v1alpha1.ApiToken

func (*UpdateApiTokenRequest) GetUpdateMask added in v0.4.475

func (x *UpdateApiTokenRequest) GetUpdateMask() *field_mask.FieldMask

func (*UpdateApiTokenRequest) ProtoMessage

func (*UpdateApiTokenRequest) ProtoMessage()

func (*UpdateApiTokenRequest) ProtoReflect

func (x *UpdateApiTokenRequest) ProtoReflect() protoreflect.Message

func (*UpdateApiTokenRequest) Reset

func (x *UpdateApiTokenRequest) Reset()

func (*UpdateApiTokenRequest) String

func (x *UpdateApiTokenRequest) String() string

type UpdateApiTokenResponse

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

func (*UpdateApiTokenResponse) Descriptor deprecated

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

Deprecated: Use UpdateApiTokenResponse.ProtoReflect.Descriptor instead.

func (*UpdateApiTokenResponse) ProtoMessage

func (*UpdateApiTokenResponse) ProtoMessage()

func (*UpdateApiTokenResponse) ProtoReflect

func (x *UpdateApiTokenResponse) ProtoReflect() protoreflect.Message

func (*UpdateApiTokenResponse) Reset

func (x *UpdateApiTokenResponse) Reset()

func (*UpdateApiTokenResponse) String

func (x *UpdateApiTokenResponse) String() string

Jump to

Keyboard shortcuts

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