goplayd/lib/spot/proto/spotify/clienttoken/v0/clienttoken_http.pb.go
2023-01-11 11:08:26 -06:00

1712 lines
64 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.12
// source: spotify/clienttoken/v0/clienttoken_http.proto
package clienttoken_http
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
proto "tuxpa.in/a/goplayd/lib/spot/proto"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type ClientTokenRequestType int32
const (
ClientTokenRequestType_REQUEST_UNKNOWN ClientTokenRequestType = 0
ClientTokenRequestType_REQUEST_CLIENT_DATA_REQUEST ClientTokenRequestType = 1
ClientTokenRequestType_REQUEST_CHALLENGE_ANSWERS_REQUEST ClientTokenRequestType = 2
)
// Enum value maps for ClientTokenRequestType.
var (
ClientTokenRequestType_name = map[int32]string{
0: "REQUEST_UNKNOWN",
1: "REQUEST_CLIENT_DATA_REQUEST",
2: "REQUEST_CHALLENGE_ANSWERS_REQUEST",
}
ClientTokenRequestType_value = map[string]int32{
"REQUEST_UNKNOWN": 0,
"REQUEST_CLIENT_DATA_REQUEST": 1,
"REQUEST_CHALLENGE_ANSWERS_REQUEST": 2,
}
)
func (x ClientTokenRequestType) Enum() *ClientTokenRequestType {
p := new(ClientTokenRequestType)
*p = x
return p
}
func (x ClientTokenRequestType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ClientTokenRequestType) Descriptor() protoreflect.EnumDescriptor {
return file_spotify_clienttoken_v0_clienttoken_http_proto_enumTypes[0].Descriptor()
}
func (ClientTokenRequestType) Type() protoreflect.EnumType {
return &file_spotify_clienttoken_v0_clienttoken_http_proto_enumTypes[0]
}
func (x ClientTokenRequestType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ClientTokenRequestType.Descriptor instead.
func (ClientTokenRequestType) EnumDescriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{0}
}
type ClientTokenResponseType int32
const (
ClientTokenResponseType_RESPONSE_UNKNOWN ClientTokenResponseType = 0
ClientTokenResponseType_RESPONSE_GRANTED_TOKEN_RESPONSE ClientTokenResponseType = 1
ClientTokenResponseType_RESPONSE_CHALLENGES_RESPONSE ClientTokenResponseType = 2
)
// Enum value maps for ClientTokenResponseType.
var (
ClientTokenResponseType_name = map[int32]string{
0: "RESPONSE_UNKNOWN",
1: "RESPONSE_GRANTED_TOKEN_RESPONSE",
2: "RESPONSE_CHALLENGES_RESPONSE",
}
ClientTokenResponseType_value = map[string]int32{
"RESPONSE_UNKNOWN": 0,
"RESPONSE_GRANTED_TOKEN_RESPONSE": 1,
"RESPONSE_CHALLENGES_RESPONSE": 2,
}
)
func (x ClientTokenResponseType) Enum() *ClientTokenResponseType {
p := new(ClientTokenResponseType)
*p = x
return p
}
func (x ClientTokenResponseType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ClientTokenResponseType) Descriptor() protoreflect.EnumDescriptor {
return file_spotify_clienttoken_v0_clienttoken_http_proto_enumTypes[1].Descriptor()
}
func (ClientTokenResponseType) Type() protoreflect.EnumType {
return &file_spotify_clienttoken_v0_clienttoken_http_proto_enumTypes[1]
}
func (x ClientTokenResponseType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ClientTokenResponseType.Descriptor instead.
func (ClientTokenResponseType) EnumDescriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{1}
}
type ChallengeType int32
const (
ChallengeType_CHALLENGE_UNKNOWN ChallengeType = 0
ChallengeType_CHALLENGE_CLIENT_SECRET_HMAC ChallengeType = 1
ChallengeType_CHALLENGE_EVALUATE_JS ChallengeType = 2
ChallengeType_CHALLENGE_HASH_CASH ChallengeType = 3
)
// Enum value maps for ChallengeType.
var (
ChallengeType_name = map[int32]string{
0: "CHALLENGE_UNKNOWN",
1: "CHALLENGE_CLIENT_SECRET_HMAC",
2: "CHALLENGE_EVALUATE_JS",
3: "CHALLENGE_HASH_CASH",
}
ChallengeType_value = map[string]int32{
"CHALLENGE_UNKNOWN": 0,
"CHALLENGE_CLIENT_SECRET_HMAC": 1,
"CHALLENGE_EVALUATE_JS": 2,
"CHALLENGE_HASH_CASH": 3,
}
)
func (x ChallengeType) Enum() *ChallengeType {
p := new(ChallengeType)
*p = x
return p
}
func (x ChallengeType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ChallengeType) Descriptor() protoreflect.EnumDescriptor {
return file_spotify_clienttoken_v0_clienttoken_http_proto_enumTypes[2].Descriptor()
}
func (ChallengeType) Type() protoreflect.EnumType {
return &file_spotify_clienttoken_v0_clienttoken_http_proto_enumTypes[2]
}
func (x ChallengeType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ChallengeType.Descriptor instead.
func (ChallengeType) EnumDescriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{2}
}
type ClientTokenRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RequestType ClientTokenRequestType `protobuf:"varint,1,opt,name=request_type,json=requestType,proto3,enum=spotify.clienttoken.http.v0.ClientTokenRequestType" json:"request_type,omitempty"`
// Types that are assignable to Request:
//
// *ClientTokenRequest_ClientData
// *ClientTokenRequest_ChallengeAnswers
Request isClientTokenRequest_Request `protobuf_oneof:"request"`
}
func (x *ClientTokenRequest) Reset() {
*x = ClientTokenRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClientTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClientTokenRequest) ProtoMessage() {}
func (x *ClientTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClientTokenRequest.ProtoReflect.Descriptor instead.
func (*ClientTokenRequest) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{0}
}
func (x *ClientTokenRequest) GetRequestType() ClientTokenRequestType {
if x != nil {
return x.RequestType
}
return ClientTokenRequestType_REQUEST_UNKNOWN
}
func (m *ClientTokenRequest) GetRequest() isClientTokenRequest_Request {
if m != nil {
return m.Request
}
return nil
}
func (x *ClientTokenRequest) GetClientData() *ClientDataRequest {
if x, ok := x.GetRequest().(*ClientTokenRequest_ClientData); ok {
return x.ClientData
}
return nil
}
func (x *ClientTokenRequest) GetChallengeAnswers() *ChallengeAnswersRequest {
if x, ok := x.GetRequest().(*ClientTokenRequest_ChallengeAnswers); ok {
return x.ChallengeAnswers
}
return nil
}
type isClientTokenRequest_Request interface {
isClientTokenRequest_Request()
}
type ClientTokenRequest_ClientData struct {
ClientData *ClientDataRequest `protobuf:"bytes,2,opt,name=client_data,json=clientData,proto3,oneof"`
}
type ClientTokenRequest_ChallengeAnswers struct {
ChallengeAnswers *ChallengeAnswersRequest `protobuf:"bytes,3,opt,name=challenge_answers,json=challengeAnswers,proto3,oneof"`
}
func (*ClientTokenRequest_ClientData) isClientTokenRequest_Request() {}
func (*ClientTokenRequest_ChallengeAnswers) isClientTokenRequest_Request() {}
type ClientDataRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ClientVersion string `protobuf:"bytes,1,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
// Types that are assignable to Data:
//
// *ClientDataRequest_ConnectivitySdkData
Data isClientDataRequest_Data `protobuf_oneof:"data"`
}
func (x *ClientDataRequest) Reset() {
*x = ClientDataRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClientDataRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClientDataRequest) ProtoMessage() {}
func (x *ClientDataRequest) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClientDataRequest.ProtoReflect.Descriptor instead.
func (*ClientDataRequest) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{1}
}
func (x *ClientDataRequest) GetClientVersion() string {
if x != nil {
return x.ClientVersion
}
return ""
}
func (x *ClientDataRequest) GetClientId() string {
if x != nil {
return x.ClientId
}
return ""
}
func (m *ClientDataRequest) GetData() isClientDataRequest_Data {
if m != nil {
return m.Data
}
return nil
}
func (x *ClientDataRequest) GetConnectivitySdkData() *proto.ConnectivitySdkData {
if x, ok := x.GetData().(*ClientDataRequest_ConnectivitySdkData); ok {
return x.ConnectivitySdkData
}
return nil
}
type isClientDataRequest_Data interface {
isClientDataRequest_Data()
}
type ClientDataRequest_ConnectivitySdkData struct {
ConnectivitySdkData *proto.ConnectivitySdkData `protobuf:"bytes,3,opt,name=connectivity_sdk_data,json=connectivitySdkData,proto3,oneof"`
}
func (*ClientDataRequest_ConnectivitySdkData) isClientDataRequest_Data() {}
type ChallengeAnswersRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
Answers []*ChallengeAnswer `protobuf:"bytes,2,rep,name=answers,proto3" json:"answers,omitempty"`
}
func (x *ChallengeAnswersRequest) Reset() {
*x = ChallengeAnswersRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChallengeAnswersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChallengeAnswersRequest) ProtoMessage() {}
func (x *ChallengeAnswersRequest) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChallengeAnswersRequest.ProtoReflect.Descriptor instead.
func (*ChallengeAnswersRequest) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{2}
}
func (x *ChallengeAnswersRequest) GetState() string {
if x != nil {
return x.State
}
return ""
}
func (x *ChallengeAnswersRequest) GetAnswers() []*ChallengeAnswer {
if x != nil {
return x.Answers
}
return nil
}
type ClientTokenResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ResponseType ClientTokenResponseType `protobuf:"varint,1,opt,name=response_type,json=responseType,proto3,enum=spotify.clienttoken.http.v0.ClientTokenResponseType" json:"response_type,omitempty"`
// Types that are assignable to Response:
//
// *ClientTokenResponse_GrantedToken
// *ClientTokenResponse_Challenges
Response isClientTokenResponse_Response `protobuf_oneof:"response"`
}
func (x *ClientTokenResponse) Reset() {
*x = ClientTokenResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClientTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClientTokenResponse) ProtoMessage() {}
func (x *ClientTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClientTokenResponse.ProtoReflect.Descriptor instead.
func (*ClientTokenResponse) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{3}
}
func (x *ClientTokenResponse) GetResponseType() ClientTokenResponseType {
if x != nil {
return x.ResponseType
}
return ClientTokenResponseType_RESPONSE_UNKNOWN
}
func (m *ClientTokenResponse) GetResponse() isClientTokenResponse_Response {
if m != nil {
return m.Response
}
return nil
}
func (x *ClientTokenResponse) GetGrantedToken() *GrantedTokenResponse {
if x, ok := x.GetResponse().(*ClientTokenResponse_GrantedToken); ok {
return x.GrantedToken
}
return nil
}
func (x *ClientTokenResponse) GetChallenges() *ChallengesResponse {
if x, ok := x.GetResponse().(*ClientTokenResponse_Challenges); ok {
return x.Challenges
}
return nil
}
type isClientTokenResponse_Response interface {
isClientTokenResponse_Response()
}
type ClientTokenResponse_GrantedToken struct {
GrantedToken *GrantedTokenResponse `protobuf:"bytes,2,opt,name=granted_token,json=grantedToken,proto3,oneof"`
}
type ClientTokenResponse_Challenges struct {
Challenges *ChallengesResponse `protobuf:"bytes,3,opt,name=challenges,proto3,oneof"`
}
func (*ClientTokenResponse_GrantedToken) isClientTokenResponse_Response() {}
func (*ClientTokenResponse_Challenges) isClientTokenResponse_Response() {}
type TokenDomain struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"`
}
func (x *TokenDomain) Reset() {
*x = TokenDomain{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TokenDomain) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TokenDomain) ProtoMessage() {}
func (x *TokenDomain) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TokenDomain.ProtoReflect.Descriptor instead.
func (*TokenDomain) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{4}
}
func (x *TokenDomain) GetDomain() string {
if x != nil {
return x.Domain
}
return ""
}
type GrantedTokenResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
ExpiresAfterSeconds int32 `protobuf:"varint,2,opt,name=expires_after_seconds,json=expiresAfterSeconds,proto3" json:"expires_after_seconds,omitempty"`
RefreshAfterSeconds int32 `protobuf:"varint,3,opt,name=refresh_after_seconds,json=refreshAfterSeconds,proto3" json:"refresh_after_seconds,omitempty"`
Domains []*TokenDomain `protobuf:"bytes,4,rep,name=domains,proto3" json:"domains,omitempty"`
}
func (x *GrantedTokenResponse) Reset() {
*x = GrantedTokenResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GrantedTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GrantedTokenResponse) ProtoMessage() {}
func (x *GrantedTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GrantedTokenResponse.ProtoReflect.Descriptor instead.
func (*GrantedTokenResponse) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{5}
}
func (x *GrantedTokenResponse) GetToken() string {
if x != nil {
return x.Token
}
return ""
}
func (x *GrantedTokenResponse) GetExpiresAfterSeconds() int32 {
if x != nil {
return x.ExpiresAfterSeconds
}
return 0
}
func (x *GrantedTokenResponse) GetRefreshAfterSeconds() int32 {
if x != nil {
return x.RefreshAfterSeconds
}
return 0
}
func (x *GrantedTokenResponse) GetDomains() []*TokenDomain {
if x != nil {
return x.Domains
}
return nil
}
type ChallengesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
Challenges []*Challenge `protobuf:"bytes,2,rep,name=challenges,proto3" json:"challenges,omitempty"`
}
func (x *ChallengesResponse) Reset() {
*x = ChallengesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChallengesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChallengesResponse) ProtoMessage() {}
func (x *ChallengesResponse) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChallengesResponse.ProtoReflect.Descriptor instead.
func (*ChallengesResponse) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{6}
}
func (x *ChallengesResponse) GetState() string {
if x != nil {
return x.State
}
return ""
}
func (x *ChallengesResponse) GetChallenges() []*Challenge {
if x != nil {
return x.Challenges
}
return nil
}
type ClientSecretParameters struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Salt string `protobuf:"bytes,1,opt,name=salt,proto3" json:"salt,omitempty"`
}
func (x *ClientSecretParameters) Reset() {
*x = ClientSecretParameters{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClientSecretParameters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClientSecretParameters) ProtoMessage() {}
func (x *ClientSecretParameters) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClientSecretParameters.ProtoReflect.Descriptor instead.
func (*ClientSecretParameters) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{7}
}
func (x *ClientSecretParameters) GetSalt() string {
if x != nil {
return x.Salt
}
return ""
}
type EvaluateJSParameters struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
Libraries []string `protobuf:"bytes,2,rep,name=libraries,proto3" json:"libraries,omitempty"`
}
func (x *EvaluateJSParameters) Reset() {
*x = EvaluateJSParameters{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EvaluateJSParameters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EvaluateJSParameters) ProtoMessage() {}
func (x *EvaluateJSParameters) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EvaluateJSParameters.ProtoReflect.Descriptor instead.
func (*EvaluateJSParameters) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{8}
}
func (x *EvaluateJSParameters) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *EvaluateJSParameters) GetLibraries() []string {
if x != nil {
return x.Libraries
}
return nil
}
type HashCashParameters struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Length int32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"`
Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
}
func (x *HashCashParameters) Reset() {
*x = HashCashParameters{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HashCashParameters) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HashCashParameters) ProtoMessage() {}
func (x *HashCashParameters) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HashCashParameters.ProtoReflect.Descriptor instead.
func (*HashCashParameters) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{9}
}
func (x *HashCashParameters) GetLength() int32 {
if x != nil {
return x.Length
}
return 0
}
func (x *HashCashParameters) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
type Challenge struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Type ChallengeType `protobuf:"varint,1,opt,name=type,proto3,enum=spotify.clienttoken.http.v0.ChallengeType" json:"type,omitempty"`
// Types that are assignable to Parameters:
//
// *Challenge_ClientSecretParameters
// *Challenge_EvaluateJsParameters
// *Challenge_EvaluateHashcashParameters
Parameters isChallenge_Parameters `protobuf_oneof:"parameters"`
}
func (x *Challenge) Reset() {
*x = Challenge{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Challenge) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Challenge) ProtoMessage() {}
func (x *Challenge) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Challenge.ProtoReflect.Descriptor instead.
func (*Challenge) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{10}
}
func (x *Challenge) GetType() ChallengeType {
if x != nil {
return x.Type
}
return ChallengeType_CHALLENGE_UNKNOWN
}
func (m *Challenge) GetParameters() isChallenge_Parameters {
if m != nil {
return m.Parameters
}
return nil
}
func (x *Challenge) GetClientSecretParameters() *ClientSecretParameters {
if x, ok := x.GetParameters().(*Challenge_ClientSecretParameters); ok {
return x.ClientSecretParameters
}
return nil
}
func (x *Challenge) GetEvaluateJsParameters() *EvaluateJSParameters {
if x, ok := x.GetParameters().(*Challenge_EvaluateJsParameters); ok {
return x.EvaluateJsParameters
}
return nil
}
func (x *Challenge) GetEvaluateHashcashParameters() *HashCashParameters {
if x, ok := x.GetParameters().(*Challenge_EvaluateHashcashParameters); ok {
return x.EvaluateHashcashParameters
}
return nil
}
type isChallenge_Parameters interface {
isChallenge_Parameters()
}
type Challenge_ClientSecretParameters struct {
ClientSecretParameters *ClientSecretParameters `protobuf:"bytes,2,opt,name=client_secret_parameters,json=clientSecretParameters,proto3,oneof"`
}
type Challenge_EvaluateJsParameters struct {
EvaluateJsParameters *EvaluateJSParameters `protobuf:"bytes,3,opt,name=evaluate_js_parameters,json=evaluateJsParameters,proto3,oneof"`
}
type Challenge_EvaluateHashcashParameters struct {
EvaluateHashcashParameters *HashCashParameters `protobuf:"bytes,4,opt,name=evaluate_hashcash_parameters,json=evaluateHashcashParameters,proto3,oneof"`
}
func (*Challenge_ClientSecretParameters) isChallenge_Parameters() {}
func (*Challenge_EvaluateJsParameters) isChallenge_Parameters() {}
func (*Challenge_EvaluateHashcashParameters) isChallenge_Parameters() {}
type ClientSecretHMACAnswer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hmac string `protobuf:"bytes,1,opt,name=hmac,proto3" json:"hmac,omitempty"`
}
func (x *ClientSecretHMACAnswer) Reset() {
*x = ClientSecretHMACAnswer{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClientSecretHMACAnswer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClientSecretHMACAnswer) ProtoMessage() {}
func (x *ClientSecretHMACAnswer) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClientSecretHMACAnswer.ProtoReflect.Descriptor instead.
func (*ClientSecretHMACAnswer) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{11}
}
func (x *ClientSecretHMACAnswer) GetHmac() string {
if x != nil {
return x.Hmac
}
return ""
}
type EvaluateJSAnswer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Result string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
}
func (x *EvaluateJSAnswer) Reset() {
*x = EvaluateJSAnswer{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EvaluateJSAnswer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EvaluateJSAnswer) ProtoMessage() {}
func (x *EvaluateJSAnswer) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EvaluateJSAnswer.ProtoReflect.Descriptor instead.
func (*EvaluateJSAnswer) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{12}
}
func (x *EvaluateJSAnswer) GetResult() string {
if x != nil {
return x.Result
}
return ""
}
type HashCashAnswer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Suffix string `protobuf:"bytes,1,opt,name=suffix,proto3" json:"suffix,omitempty"`
}
func (x *HashCashAnswer) Reset() {
*x = HashCashAnswer{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HashCashAnswer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HashCashAnswer) ProtoMessage() {}
func (x *HashCashAnswer) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HashCashAnswer.ProtoReflect.Descriptor instead.
func (*HashCashAnswer) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{13}
}
func (x *HashCashAnswer) GetSuffix() string {
if x != nil {
return x.Suffix
}
return ""
}
type ChallengeAnswer struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChallengeType ChallengeType `protobuf:"varint,1,opt,name=ChallengeType,proto3,enum=spotify.clienttoken.http.v0.ChallengeType" json:"ChallengeType,omitempty"`
// Types that are assignable to Answer:
//
// *ChallengeAnswer_ClientSecret
// *ChallengeAnswer_EvaluateJs
// *ChallengeAnswer_HashCash
Answer isChallengeAnswer_Answer `protobuf_oneof:"answer"`
}
func (x *ChallengeAnswer) Reset() {
*x = ChallengeAnswer{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChallengeAnswer) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChallengeAnswer) ProtoMessage() {}
func (x *ChallengeAnswer) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChallengeAnswer.ProtoReflect.Descriptor instead.
func (*ChallengeAnswer) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{14}
}
func (x *ChallengeAnswer) GetChallengeType() ChallengeType {
if x != nil {
return x.ChallengeType
}
return ChallengeType_CHALLENGE_UNKNOWN
}
func (m *ChallengeAnswer) GetAnswer() isChallengeAnswer_Answer {
if m != nil {
return m.Answer
}
return nil
}
func (x *ChallengeAnswer) GetClientSecret() *ClientSecretHMACAnswer {
if x, ok := x.GetAnswer().(*ChallengeAnswer_ClientSecret); ok {
return x.ClientSecret
}
return nil
}
func (x *ChallengeAnswer) GetEvaluateJs() *EvaluateJSAnswer {
if x, ok := x.GetAnswer().(*ChallengeAnswer_EvaluateJs); ok {
return x.EvaluateJs
}
return nil
}
func (x *ChallengeAnswer) GetHashCash() *HashCashAnswer {
if x, ok := x.GetAnswer().(*ChallengeAnswer_HashCash); ok {
return x.HashCash
}
return nil
}
type isChallengeAnswer_Answer interface {
isChallengeAnswer_Answer()
}
type ChallengeAnswer_ClientSecret struct {
ClientSecret *ClientSecretHMACAnswer `protobuf:"bytes,2,opt,name=client_secret,json=clientSecret,proto3,oneof"`
}
type ChallengeAnswer_EvaluateJs struct {
EvaluateJs *EvaluateJSAnswer `protobuf:"bytes,3,opt,name=evaluate_js,json=evaluateJs,proto3,oneof"`
}
type ChallengeAnswer_HashCash struct {
HashCash *HashCashAnswer `protobuf:"bytes,4,opt,name=hash_cash,json=hashCash,proto3,oneof"`
}
func (*ChallengeAnswer_ClientSecret) isChallengeAnswer_Answer() {}
func (*ChallengeAnswer_EvaluateJs) isChallengeAnswer_Answer() {}
func (*ChallengeAnswer_HashCash) isChallengeAnswer_Answer() {}
type ClientTokenBadRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}
func (x *ClientTokenBadRequest) Reset() {
*x = ClientTokenBadRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClientTokenBadRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClientTokenBadRequest) ProtoMessage() {}
func (x *ClientTokenBadRequest) ProtoReflect() protoreflect.Message {
mi := &file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClientTokenBadRequest.ProtoReflect.Descriptor instead.
func (*ClientTokenBadRequest) Descriptor() ([]byte, []int) {
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP(), []int{15}
}
func (x *ClientTokenBadRequest) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
var File_spotify_clienttoken_v0_clienttoken_http_proto protoreflect.FileDescriptor
var file_spotify_clienttoken_v0_clienttoken_http_proto_rawDesc = []byte{
0x0a, 0x2d, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x30, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x1b, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x1a, 0x12, 0x63, 0x6f,
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0xaf, 0x02, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e,
0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e, 0x43, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79,
0x70, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
0x51, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63,
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e,
0x76, 0x30, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61,
0x74, 0x61, 0x12, 0x63, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f,
0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e,
0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e, 0x43, 0x68, 0x61, 0x6c,
0x6c, 0x65, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65,
0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x22, 0xc7, 0x01, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74,
0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x66, 0x0a, 0x15,
0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x64, 0x6b,
0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x70,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65,
0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x64, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52,
0x13, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x64, 0x6b,
0x44, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x17,
0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x46, 0x0a,
0x07, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c,
0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74,
0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e, 0x43, 0x68, 0x61,
0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x07, 0x61, 0x6e,
0x73, 0x77, 0x65, 0x72, 0x73, 0x22, 0xa9, 0x02, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a,
0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63,
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e,
0x76, 0x30, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x67, 0x72, 0x61, 0x6e,
0x74, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x31, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e, 0x47, 0x72,
0x61, 0x6e, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b,
0x65, 0x6e, 0x12, 0x51, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79,
0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74,
0x70, 0x2e, 0x76, 0x30, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6c, 0x6c,
0x65, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x25, 0x0a, 0x0b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0xd8, 0x01, 0x0a, 0x14, 0x47, 0x72, 0x61,
0x6e, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x69, 0x72,
0x65, 0x73, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41,
0x66, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x72,
0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63,
0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x72, 0x65, 0x66, 0x72,
0x65, 0x73, 0x68, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12,
0x42, 0x0a, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x28, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e,
0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e, 0x54,
0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x07, 0x64, 0x6f, 0x6d, 0x61,
0x69, 0x6e, 0x73, 0x22, 0x72, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61,
0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
0x46, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76,
0x30, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x0a, 0x63, 0x68, 0x61,
0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e,
0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x73, 0x61, 0x6c, 0x74, 0x22, 0x48, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
0x65, 0x4a, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x69, 0x65, 0x73, 0x22,
0x44, 0x0a, 0x12, 0x48, 0x61, 0x73, 0x68, 0x43, 0x61, 0x73, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a,
0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70,
0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0xaa, 0x03, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e,
0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74,
0x79, 0x70, 0x65, 0x12, 0x6f, 0x0a, 0x18, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65,
0x63, 0x72, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e,
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70,
0x2e, 0x76, 0x30, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x73, 0x12, 0x69, 0x0a, 0x16, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65,
0x5f, 0x6a, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63,
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e,
0x76, 0x30, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x4a, 0x53, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x14, 0x65, 0x76, 0x61, 0x6c, 0x75,
0x61, 0x74, 0x65, 0x4a, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12,
0x73, 0x0a, 0x1c, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68,
0x63, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e,
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70,
0x2e, 0x76, 0x30, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x43, 0x61, 0x73, 0x68, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61,
0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x63, 0x61, 0x73, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x73, 0x22, 0x2c, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72,
0x65, 0x74, 0x48, 0x4d, 0x41, 0x43, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04,
0x68, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6d, 0x61, 0x63,
0x22, 0x2a, 0x0a, 0x10, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x4a, 0x53, 0x41, 0x6e,
0x73, 0x77, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x28, 0x0a, 0x0e,
0x48, 0x61, 0x73, 0x68, 0x43, 0x61, 0x73, 0x68, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x16,
0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x22, 0xe7, 0x02, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6c, 0x6c,
0x65, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0d, 0x43, 0x68,
0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e,
0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x43,
0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5a, 0x0a, 0x0d,
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76,
0x30, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x4d,
0x41, 0x43, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x50, 0x0a, 0x0b, 0x65, 0x76, 0x61, 0x6c,
0x75, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e, 0x45, 0x76, 0x61, 0x6c,
0x75, 0x61, 0x74, 0x65, 0x4a, 0x53, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a,
0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x4a, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x68, 0x61,
0x73, 0x68, 0x5f, 0x63, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e,
0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x2e, 0x48, 0x61, 0x73, 0x68,
0x43, 0x61, 0x73, 0x68, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x68, 0x61,
0x73, 0x68, 0x43, 0x61, 0x73, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72,
0x22, 0x31, 0x0a, 0x15, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42,
0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x2a, 0x75, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b,
0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a,
0x0f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4c,
0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53,
0x54, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43,
0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x53,
0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x02, 0x2a, 0x76, 0x0a, 0x17, 0x43, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53,
0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x52,
0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x45, 0x44, 0x5f,
0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x01,
0x12, 0x20, 0x0a, 0x1c, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x48, 0x41,
0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x53, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45,
0x10, 0x02, 0x2a, 0x7c, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54,
0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45,
0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48,
0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x53,
0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x48, 0x4d, 0x41, 0x43, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15,
0x43, 0x48, 0x41, 0x4c, 0x4c, 0x45, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41,
0x54, 0x45, 0x5f, 0x4a, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x4c, 0x4c,
0x45, 0x4e, 0x47, 0x45, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x43, 0x41, 0x53, 0x48, 0x10, 0x03,
0x42, 0x6c, 0x0a, 0x1b, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6c, 0x69, 0x65,
0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x76, 0x30, 0x48,
0x02, 0x50, 0x01, 0x5a, 0x49, 0x74, 0x75, 0x78, 0x70, 0x61, 0x2e, 0x69, 0x6e, 0x2f, 0x61, 0x2f,
0x67, 0x6f, 0x70, 0x6c, 0x61, 0x79, 0x64, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x73, 0x70, 0x6f, 0x74,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2f, 0x63,
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x30, 0x2f, 0x63, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescOnce sync.Once
file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescData = file_spotify_clienttoken_v0_clienttoken_http_proto_rawDesc
)
func file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescGZIP() []byte {
file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescOnce.Do(func() {
file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescData)
})
return file_spotify_clienttoken_v0_clienttoken_http_proto_rawDescData
}
var file_spotify_clienttoken_v0_clienttoken_http_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_spotify_clienttoken_v0_clienttoken_http_proto_goTypes = []interface{}{
(ClientTokenRequestType)(0), // 0: spotify.clienttoken.http.v0.ClientTokenRequestType
(ClientTokenResponseType)(0), // 1: spotify.clienttoken.http.v0.ClientTokenResponseType
(ChallengeType)(0), // 2: spotify.clienttoken.http.v0.ChallengeType
(*ClientTokenRequest)(nil), // 3: spotify.clienttoken.http.v0.ClientTokenRequest
(*ClientDataRequest)(nil), // 4: spotify.clienttoken.http.v0.ClientDataRequest
(*ChallengeAnswersRequest)(nil), // 5: spotify.clienttoken.http.v0.ChallengeAnswersRequest
(*ClientTokenResponse)(nil), // 6: spotify.clienttoken.http.v0.ClientTokenResponse
(*TokenDomain)(nil), // 7: spotify.clienttoken.http.v0.TokenDomain
(*GrantedTokenResponse)(nil), // 8: spotify.clienttoken.http.v0.GrantedTokenResponse
(*ChallengesResponse)(nil), // 9: spotify.clienttoken.http.v0.ChallengesResponse
(*ClientSecretParameters)(nil), // 10: spotify.clienttoken.http.v0.ClientSecretParameters
(*EvaluateJSParameters)(nil), // 11: spotify.clienttoken.http.v0.EvaluateJSParameters
(*HashCashParameters)(nil), // 12: spotify.clienttoken.http.v0.HashCashParameters
(*Challenge)(nil), // 13: spotify.clienttoken.http.v0.Challenge
(*ClientSecretHMACAnswer)(nil), // 14: spotify.clienttoken.http.v0.ClientSecretHMACAnswer
(*EvaluateJSAnswer)(nil), // 15: spotify.clienttoken.http.v0.EvaluateJSAnswer
(*HashCashAnswer)(nil), // 16: spotify.clienttoken.http.v0.HashCashAnswer
(*ChallengeAnswer)(nil), // 17: spotify.clienttoken.http.v0.ChallengeAnswer
(*ClientTokenBadRequest)(nil), // 18: spotify.clienttoken.http.v0.ClientTokenBadRequest
(*proto.ConnectivitySdkData)(nil), // 19: spotify.clienttoken.data.v0.ConnectivitySdkData
}
var file_spotify_clienttoken_v0_clienttoken_http_proto_depIdxs = []int32{
0, // 0: spotify.clienttoken.http.v0.ClientTokenRequest.request_type:type_name -> spotify.clienttoken.http.v0.ClientTokenRequestType
4, // 1: spotify.clienttoken.http.v0.ClientTokenRequest.client_data:type_name -> spotify.clienttoken.http.v0.ClientDataRequest
5, // 2: spotify.clienttoken.http.v0.ClientTokenRequest.challenge_answers:type_name -> spotify.clienttoken.http.v0.ChallengeAnswersRequest
19, // 3: spotify.clienttoken.http.v0.ClientDataRequest.connectivity_sdk_data:type_name -> spotify.clienttoken.data.v0.ConnectivitySdkData
17, // 4: spotify.clienttoken.http.v0.ChallengeAnswersRequest.answers:type_name -> spotify.clienttoken.http.v0.ChallengeAnswer
1, // 5: spotify.clienttoken.http.v0.ClientTokenResponse.response_type:type_name -> spotify.clienttoken.http.v0.ClientTokenResponseType
8, // 6: spotify.clienttoken.http.v0.ClientTokenResponse.granted_token:type_name -> spotify.clienttoken.http.v0.GrantedTokenResponse
9, // 7: spotify.clienttoken.http.v0.ClientTokenResponse.challenges:type_name -> spotify.clienttoken.http.v0.ChallengesResponse
7, // 8: spotify.clienttoken.http.v0.GrantedTokenResponse.domains:type_name -> spotify.clienttoken.http.v0.TokenDomain
13, // 9: spotify.clienttoken.http.v0.ChallengesResponse.challenges:type_name -> spotify.clienttoken.http.v0.Challenge
2, // 10: spotify.clienttoken.http.v0.Challenge.type:type_name -> spotify.clienttoken.http.v0.ChallengeType
10, // 11: spotify.clienttoken.http.v0.Challenge.client_secret_parameters:type_name -> spotify.clienttoken.http.v0.ClientSecretParameters
11, // 12: spotify.clienttoken.http.v0.Challenge.evaluate_js_parameters:type_name -> spotify.clienttoken.http.v0.EvaluateJSParameters
12, // 13: spotify.clienttoken.http.v0.Challenge.evaluate_hashcash_parameters:type_name -> spotify.clienttoken.http.v0.HashCashParameters
2, // 14: spotify.clienttoken.http.v0.ChallengeAnswer.ChallengeType:type_name -> spotify.clienttoken.http.v0.ChallengeType
14, // 15: spotify.clienttoken.http.v0.ChallengeAnswer.client_secret:type_name -> spotify.clienttoken.http.v0.ClientSecretHMACAnswer
15, // 16: spotify.clienttoken.http.v0.ChallengeAnswer.evaluate_js:type_name -> spotify.clienttoken.http.v0.EvaluateJSAnswer
16, // 17: spotify.clienttoken.http.v0.ChallengeAnswer.hash_cash:type_name -> spotify.clienttoken.http.v0.HashCashAnswer
18, // [18:18] is the sub-list for method output_type
18, // [18:18] is the sub-list for method input_type
18, // [18:18] is the sub-list for extension type_name
18, // [18:18] is the sub-list for extension extendee
0, // [0:18] is the sub-list for field type_name
}
func init() { file_spotify_clienttoken_v0_clienttoken_http_proto_init() }
func file_spotify_clienttoken_v0_clienttoken_http_proto_init() {
if File_spotify_clienttoken_v0_clienttoken_http_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientTokenRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientDataRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChallengeAnswersRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientTokenResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TokenDomain); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GrantedTokenResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChallengesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientSecretParameters); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EvaluateJSParameters); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HashCashParameters); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Challenge); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientSecretHMACAnswer); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EvaluateJSAnswer); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HashCashAnswer); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChallengeAnswer); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientTokenBadRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[0].OneofWrappers = []interface{}{
(*ClientTokenRequest_ClientData)(nil),
(*ClientTokenRequest_ChallengeAnswers)(nil),
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[1].OneofWrappers = []interface{}{
(*ClientDataRequest_ConnectivitySdkData)(nil),
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[3].OneofWrappers = []interface{}{
(*ClientTokenResponse_GrantedToken)(nil),
(*ClientTokenResponse_Challenges)(nil),
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[10].OneofWrappers = []interface{}{
(*Challenge_ClientSecretParameters)(nil),
(*Challenge_EvaluateJsParameters)(nil),
(*Challenge_EvaluateHashcashParameters)(nil),
}
file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes[14].OneofWrappers = []interface{}{
(*ChallengeAnswer_ClientSecret)(nil),
(*ChallengeAnswer_EvaluateJs)(nil),
(*ChallengeAnswer_HashCash)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_spotify_clienttoken_v0_clienttoken_http_proto_rawDesc,
NumEnums: 3,
NumMessages: 16,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_spotify_clienttoken_v0_clienttoken_http_proto_goTypes,
DependencyIndexes: file_spotify_clienttoken_v0_clienttoken_http_proto_depIdxs,
EnumInfos: file_spotify_clienttoken_v0_clienttoken_http_proto_enumTypes,
MessageInfos: file_spotify_clienttoken_v0_clienttoken_http_proto_msgTypes,
}.Build()
File_spotify_clienttoken_v0_clienttoken_http_proto = out.File
file_spotify_clienttoken_v0_clienttoken_http_proto_rawDesc = nil
file_spotify_clienttoken_v0_clienttoken_http_proto_goTypes = nil
file_spotify_clienttoken_v0_clienttoken_http_proto_depIdxs = nil
}