Commit e5916e15 authored by Michelle Nguyen's avatar Michelle Nguyen
Browse files

Add APIKey option to GetAugmentedToken rpc

Summary:
Here is the current plan:
- Update GetAugmentedToken to take an additional API key field. Now, users can either specify a token (normal workflow) or API key (new workflow) to get the augmented token. The change to the proto is in this diff.
- In followup diff(s): Update GetAugmentedToken to use the APIKey, match it to a user, and create an augmented token for that user.

Alternatives:
- We can add a separate GetAugmentedTokenfromAPIKey rpc call if we want to separate these two flows more

Test Plan: n/a

Reviewers: zasgar, #engineering

Reviewed By: zasgar, #engineering

Differential Revision: https://phab.corp.pixielabs.ai/D6957

GitOrigin-RevId: b3bb00872339bacc81dcd2bab5a3d417627c7350
parent 713befdb
main snyk-fix-7eb526f73c75336b865418bda117e40b snyk-fix-a916784efb9d8870d42eeba63409bf85 release/vizier/vv0.9.8-pre-test.27 release/vizier/v0.11.7 release/vizier/v0.11.6 release/vizier/v0.11.5 release/vizier/v0.11.4 release/vizier/v0.11.3 release/vizier/v0.11.2 release/vizier/v0.11.1 release/vizier/v0.11.0 release/vizier/v0.10.22 release/vizier/v0.10.21 release/vizier/v0.10.20 release/vizier/v0.10.19 release/vizier/v0.10.18 release/vizier/v0.10.17 release/vizier/v0.10.16 release/vizier/v0.10.15 release/vizier/v0.10.14 release/vizier/v0.10.13 release/vizier/v0.10.12 release/vizier/v0.10.11 release/vizier/v0.10.10 release/vizier/v0.10.9 release/vizier/v0.10.8 release/vizier/v0.10.7 release/vizier/v0.10.6 release/vizier/v0.10.5 release/vizier/v0.10.4 release/vizier/v0.10.3 release/vizier/v0.10.2 release/vizier/v0.10.1 release/vizier/v0.10.0 release/vizier/v0.9.16 release/vizier/v0.9.14 release/vizier/v0.9.14-pre-main.5 release/vizier/v0.9.13 release/vizier/v0.9.13-pre-r0.17 release/vizier/v0.9.12 release/vizier/v0.9.12-pre-r0.1 release/vizier/v0.9.11 release/vizier/v0.9.11-pre-r0.32 release/vizier/v0.9.11-pre-r0.29 release/vizier/v0.9.11-pre-main.9 release/vizier/v0.9.8 release/vizier/v0.9.8-pre-test.27 release/vizier/v0.9.8-pre-test2.28 release/vizier/v0.9.7 release/vizier/v0.9.7-pre-r0.7 release/vizier/v0.9.7-pre-main.27 release/vizier/v0.9.6 release/vizier/v0.9.5 release/vizier/v0.9.5-pre-r0.13 release/vizier/v0.9.5-pre-main.18 release/vizier/v0.9.5-pre-main.17 release/vizier/v0.9.5-pre-main.14 release/vizier/v0.9.5-pre-etcdConfig.15 release/vizier/v0.9.4 release/vizier/v0.9.3 release/vizier/v0.9.2 release/vizier/v0.9.1 release/vizier/v0.9.0 release/vizier/v0.8.10 release/vizier/v0.8.9 release/vizier/v0.8.8 release/vizier/v0.8.7 release/vizier/v0.8.6 release/vizier/v0.8.5 release/vizier/v0.8.3 release/vizier/v0.8.2 release/vizier/v0.8.1 release/vizier/v0.8.0 release/vizier/v0.7.19 release/vizier/v0.7.18 release/vizier/v0.7.17 release/vizier/v0.7.16 release/vizier/v0.7.15 release/vizier/v0.7.14 release/vizier/v0.7.13 release/vizier/v0.7.12 release/vizier/v0.7.11 release/vizier/v0.7.10 release/vizier/v0.7.9 release/vizier/v0.7.8 release/vizier/v0.7.7 release/vizier/v0.7.6 release/vizier/v0.7.5 release/vizier/v0.7.4 release/vizier/v0.7.3 release/vizier/v0.7.2 release/vizier/v0.7.1 release/vizier/v0.6.5 release/vizier/v0.6.4 release/vizier/v0.6.3 release/vizier/v0.6.2 release/vizier/v0.6.1 release/vizier/v0.6.0 release/vizier/v0.5.34 release/vizier/v0.5.32 release/vizier/v0.5.31 release/vizier/v0.5.30 release/vizier/v0.5.29 release/vizier/v0.5.28 release/vizier/v0.5.27 release/vizier/v0.5.26 release/vizier/v0.5.25 release/vizier/v0.5.24 release/vizier/v0.5.23 release/vizier/v0.5.22 release/vizier/v0.5.21 release/vizier/v0.5.20 release/vizier/v0.5.19 release/vizier/v0.5.18 release/operator/v0.0.30 release/operator/v0.0.29 release/operator/v0.0.28 release/operator/v0.0.27 release/operator/v0.0.26 release/operator/v0.0.25 release/operator/v0.0.24 release/operator/v0.0.23 release/operator/v0.0.22 release/operator/v0.0.21 release/operator/v0.0.20 release/operator/v0.0.19 release/operator/v0.0.18 release/operator/v0.0.17 release/operator/v0.0.16 release/operator/v0.0.15 release/operator/v0.0.15-pre-r0.6 release/operator/v0.0.14 release/operator/v0.0.14-pre-zOperator3.8 release/operator/v0.0.14-pre-r0.8 release/operator/v0.0.13 release/operator/v0.0.13-pre-test.5 release/operator/v0.0.13-pre-main.5 release/operator/v0.0.12 release/operator/v0.0.12-pre-main.6 release/operator/v0.0.11 release/operator/v0.0.10 release/operator/v0.0.9 release/operator/v0.0.7 release/operator/v0.0.5 release/operator/v0.0.2 release/cloud/staging/1637355758 release/cloud/staging/1637266321 release/cloud/staging/1637083942 release/cloud/staging/1636658412 release/cloud/staging/1636655115 release/cloud/staging/1636566009 release/cloud/staging/1636486580 release/cloud/staging/1635273164 release/cloud/staging/1634664761 release/cloud/staging/1634662582 release/cloud/staging/1634426539 release/cloud/staging/1634255213 release/cloud/staging/1633889214 release/cloud/staging/1633467640 release/cloud/staging/1633377421 release/cloud/staging/1632931048 release/cloud/staging/1632880554 release/cloud/staging/1631813710 release/cloud/staging/1631205641 release/cloud/prod/1658198111 release/cloud/prod/1658185818 release/cloud/prod/1658183222 release/cloud/prod/1657740688 release/cloud/prod/1657049209 release/cloud/prod/1656629056 release/cloud/prod/1656527373 release/cloud/prod/1656452950 release/cloud/prod/1655997138 release/cloud/prod/1655226092 release/cloud/prod/1654806360 release/cloud/prod/1654144074 release/cloud/prod/1654133791 release/cloud/prod/1652313416 release/cloud/prod/1652304483 release/cloud/prod/1652214656 release/cloud/prod/1651864223 release/cloud/prod/1651799821 release/cloud/prod/1651704659 release/cloud/prod/1651616922 release/cloud/prod/1650645384 release/cloud/prod/1650480744 release/cloud/prod/1650306041 release/cloud/prod/1650056868 release/cloud/prod/1650039340 release/cloud/prod/1649978499 release/cloud/prod/1649797942 release/cloud/prod/1649787581 release/cloud/prod/1649269698 release/cloud/prod/1649107437 release/cloud/prod/1648586238 release/cloud/prod/1647992139 release/cloud/prod/1647379907 release/cloud/prod/1646182041 release/cloud/prod/1644961014 release/cloud/prod/1644348245 release/cloud/prod/1643849214 release/cloud/prod/1643826488 release/cloud/prod/1643153852 release/cloud/prod/1643056106 release/cloud/prod/1643052598 release/cloud/prod/1642705917 release/cloud/prod/1642632551 release/cloud/prod/1642205277 release/cloud/prod/1642145141 release/cloud/prod/1642141551 release/cloud/prod/1642139120 release/cloud/prod/1642134238 release/cloud/prod/1642130337 release/cloud/prod/1642126826 release/cloud/prod/1642124521 release/cloud/prod/1642109235 release/cloud/prod/1641941995 release/cloud/prod/1641420513 release/cloud/prod/1641254216 release/cloud/prod/1638917470 release/cloud/prod/1637096190 release/cloud/prod/1636492829 release/cloud/prod/1635286066 release/cloud/prod/1634668183 release/cloud/prod/1634663695 release/cloud/prod/1634282223 release/cloud/prod/1633893408 release/cloud/prod/1633710125 release/cloud/prod/1633560085 release/cloud/prod/1633495949 release/cloud/prod/1633474704 release/cloud/prod/1633379527 release/cloud/prod/1632935904 release/cloud/prod/1631826310 release/cloud/prod/1630737620 release/cloud/prod/1630714187 release/cloud/prod/1630622583 release/cloud/prod/1630433362 release/cloud/prod/1630110767 release/cloud/prod/1629952882 release/cloud/prod/1629920564 release/cloud/prod/1629851112 release/cloud/prod/1629494063 release/cloud/prod/1629339917 release/cloud/prod/1629337848 release/cloud/prod/1629335332 release/cloud/prod/1629311730 release/cloud/prod/1629166688 release/cloud/prod/1629166023 release/cloud/prod/1629165964 release/cloud/prod/1629151138 release/cloud/prod/1628025334 release/cloud/prod/1627971857 release/cloud/prod/1627943140 release/cloud/prod/1627935195 release/cloud/prod/1627644793 release/cloud/prod/1627601637 release/cloud/prod/1627445520 release/cloud/prod/1627421364 release/cloud/prod/1626909202 release/cloud/prod/1626824610 release/cloud/prod/1626391194 release/cloud/prod/1626321970 release/cloud/prod/1626073778 release/cloud/prod/1625699466 release/cloud/prod/1625253333 release/cloud/prod/1625249910 release/cloud/prod/1625013333 release/cloud/prod/1625003953 release/cloud/prod/1625001388 release/cloud/prod/1624993505 release/cloud/prod/1624989299 release/cloud/prod/1623456844 release/cloud/prod/1622779032 release/cloud/prod/1621989349 release/cloud/prod/1621986389 release/cloud/prod/1621964672 release/cloud/prod/1621920686 release/cloud/prod/1621917276 release/cloud/prod/1621882022 release/cloud/prod/1620958944 release/cloud/prod/1620945558 release/cloud/prod/1620327546 release/cloud/prod/1620273211 release/cloud/prod/1620271073 release/cloud/prod/1620090826 release/cloud/prod/1619828773 release/cloud/prod/1619741770 release/cloud/prod/1619126029 release/cloud/prod/1618639797 release/cloud/prod/1618522037 release/cloud/prod/1617918178 release/cloud/prod/1617647275 release/cloud/prod/1617133715 release/cloud/prod/1616658618 release/cloud/prod/1616654932 release/cloud/prod/1616448710 release/cloud/prod/1615945400 release/cloud/prod/1615831644 release/cloud/prod/1615576886 release/cloud/prod/1615411712 release/cloud/prod/1615077380 release/cloud/prod/1614910099 release/cloud/prod/1614641663 release/cloud/prod/1614386136 release/cloud/prod/1614285784 release/cloud/prod/1613673078 release/cloud/prod/1613098936 release/cloud/prod/1611730359 release/cloud/prod/1611722282 release/cloud/prod/1610649625 release/cloud/prod/1608860073 release/cloud/prod/1608187571 release/cloud/prod/1608153468 release/cli/v0.7.16 release/cli/v0.7.15 release/cli/v0.7.14 release/cli/v0.7.13 release/cli/v0.7.12 release/cli/v0.7.11 release/cli/v0.7.10 release/cli/v0.7.9 release/cli/v0.7.8 release/cli/v0.7.7 release/cli/v0.7.6 release/cli/v0.7.5 release/cli/v0.7.4 release/cli/v0.7.3 release/cli/v0.7.2 release/cli/v0.7.1 release/cli/v0.7.1-pre-r0.5 release/cli/v0.7.0 release/cli/v0.7.0-pre-main.11 release/cli/v0.6.8-pre-main.9 release/cli/v0.6.7 release/cli/v0.6.6 release/cli/v0.6.5 release/cli/v0.6.4 release/cli/v0.6.3 release/cli/v0.6.2 release/cli/v0.6.1 release/cli/v0.5.14 release/cli/v0.5.13 release/cli/v0.5.12 release/cli/v0.5.11 release/cli/v0.5.9 release/cli/v0.5.8 release/cli/v0.5.7 release/cli/v0.5.6 release/cli/v0.5.5 release/cli/v0.5.4 release/cli/v0.5.3 release/cli/v0.5.2 release/cli/v0.5.1 release/cli/v0.4.0 release/cli/v0.3.29 release/cli/v0.3.28 release/cli/v0.3.27 release/cli/v0.3.26 release/cli/v0.3.25 release/cli/v0.3.24 release/cli/v0.3.23 release/cli/v0.3.22 release/cli/v0.3.21 release/cli/v0.3.20 release/cli/v0.3.19 release/cli/v0.3.18 release/cli/v0.3.17
No related merge requests found
Showing with 819 additions and 138 deletions
+819 -138
......@@ -2,6 +2,7 @@ package controllers
import (
"context"
"errors"
"time"
uuid "github.com/satori/go.uuid"
......@@ -285,6 +286,11 @@ func (s *Server) createUserAndOptionallyOrg(ctx context.Context, domainName stri
return userInfo, orgID, err
}
// GetAugmentedTokenForAPIKey produces an augmented token for the user given a API key.
func (s *Server) GetAugmentedTokenForAPIKey(ctx context.Context, in *pb.GetAugmentedTokenForAPIKeyRequest) (*pb.GetAugmentedTokenForAPIKeyResponse, error) {
return nil, errors.New("Not yet implemented")
}
// GetAugmentedToken produces augmented tokens for the user based on passed in credentials.
func (s *Server) GetAugmentedToken(
ctx context.Context, in *pb.GetAugmentedAuthTokenRequest) (
......
This diff is collapsed.
......@@ -30,6 +30,9 @@ service AuthService {
// Takes an opaque identifier (from above) and produces a token with user details.
rpc GetAugmentedToken(GetAugmentedAuthTokenRequest) returns (GetAugmentedAuthTokenResponse) {}
// Takes an API key and produces a token with user details.
rpc GetAugmentedTokenForAPIKey(GetAugmentedTokenForAPIKeyRequest) returns (GetAugmentedTokenForAPIKeyResponse) {}
}
message LoginRequest {
......@@ -116,6 +119,23 @@ message GetAugmentedAuthTokenResponse {
int64 expires_at = 2;
}
message GetAugmentedTokenForAPIKeyRequest {
// An API Key that can be linked to a particular user/org.
string api_key = 1 [
(gogoproto.customname) = "APIKey"
];
}
message GetAugmentedTokenForAPIKeyResponse {
// The signed token augmented with user information. This can contain additional information about
// the user such as permissions, etc. This allows us to keep the initial token small.
// This token will have a short lifetime of ~30 mins.
string token = 1;
// When this login expires.
int64 expires_at = 2;
}
//////////////////////////////////////////////////////////////
// API Key Service
//////////////////////////////////////////////////////////////
......
......@@ -91,6 +91,24 @@ func (mr *MockAuthServiceClientMockRecorder) GetAugmentedToken(ctx, in interface
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAugmentedToken", reflect.TypeOf((*MockAuthServiceClient)(nil).GetAugmentedToken), varargs...)
}
// GetAugmentedTokenForAPIKey mocks base method
func (m *MockAuthServiceClient) GetAugmentedTokenForAPIKey(ctx context.Context, in *proto.GetAugmentedTokenForAPIKeyRequest, opts ...grpc.CallOption) (*proto.GetAugmentedTokenForAPIKeyResponse, error) {
varargs := []interface{}{ctx, in}
for _, a := range opts {
varargs = append(varargs, a)
}
ret := m.ctrl.Call(m, "GetAugmentedTokenForAPIKey", varargs...)
ret0, _ := ret[0].(*proto.GetAugmentedTokenForAPIKeyResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetAugmentedTokenForAPIKey indicates an expected call of GetAugmentedTokenForAPIKey
func (mr *MockAuthServiceClientMockRecorder) GetAugmentedTokenForAPIKey(ctx, in interface{}, opts ...interface{}) *gomock.Call {
varargs := append([]interface{}{ctx, in}, opts...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAugmentedTokenForAPIKey", reflect.TypeOf((*MockAuthServiceClient)(nil).GetAugmentedTokenForAPIKey), varargs...)
}
// MockAuthServiceServer is a mock of AuthServiceServer interface
type MockAuthServiceServer struct {
ctrl *gomock.Controller
......@@ -153,6 +171,19 @@ func (mr *MockAuthServiceServerMockRecorder) GetAugmentedToken(arg0, arg1 interf
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAugmentedToken", reflect.TypeOf((*MockAuthServiceServer)(nil).GetAugmentedToken), arg0, arg1)
}
// GetAugmentedTokenForAPIKey mocks base method
func (m *MockAuthServiceServer) GetAugmentedTokenForAPIKey(arg0 context.Context, arg1 *proto.GetAugmentedTokenForAPIKeyRequest) (*proto.GetAugmentedTokenForAPIKeyResponse, error) {
ret := m.ctrl.Call(m, "GetAugmentedTokenForAPIKey", arg0, arg1)
ret0, _ := ret[0].(*proto.GetAugmentedTokenForAPIKeyResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetAugmentedTokenForAPIKey indicates an expected call of GetAugmentedTokenForAPIKey
func (mr *MockAuthServiceServerMockRecorder) GetAugmentedTokenForAPIKey(arg0, arg1 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAugmentedTokenForAPIKey", reflect.TypeOf((*MockAuthServiceServer)(nil).GetAugmentedTokenForAPIKey), arg0, arg1)
}
// MockAPIKeyServiceClient is a mock of APIKeyServiceClient interface
type MockAPIKeyServiceClient struct {
ctrl *gomock.Controller
......
......@@ -394,6 +394,7 @@ type DeploymentSpec struct {
// *DeploymentSpec_Path
// *DeploymentSpec_Upid
// *DeploymentSpec_SharedObject_
// *DeploymentSpec_Pod
// *DeploymentSpec_PodProcess_
TargetOneof isDeploymentSpec_TargetOneof `protobuf_oneof:"target_oneof"`
}
......@@ -446,6 +447,9 @@ type DeploymentSpec_Upid struct {
type DeploymentSpec_SharedObject_ struct {
SharedObject *DeploymentSpec_SharedObject `protobuf:"bytes,8,opt,name=shared_object,json=sharedObject,proto3,oneof" json:"shared_object,omitempty"`
}
type DeploymentSpec_Pod struct {
Pod string `protobuf:"bytes,9,opt,name=pod,proto3,oneof" json:"pod,omitempty"`
}
type DeploymentSpec_PodProcess_ struct {
PodProcess *DeploymentSpec_PodProcess `protobuf:"bytes,10,opt,name=pod_process,json=podProcess,proto3,oneof" json:"pod_process,omitempty"`
}
......@@ -453,6 +457,7 @@ type DeploymentSpec_PodProcess_ struct {
func (*DeploymentSpec_Path) isDeploymentSpec_TargetOneof() {}
func (*DeploymentSpec_Upid) isDeploymentSpec_TargetOneof() {}
func (*DeploymentSpec_SharedObject_) isDeploymentSpec_TargetOneof() {}
func (*DeploymentSpec_Pod) isDeploymentSpec_TargetOneof() {}
func (*DeploymentSpec_PodProcess_) isDeploymentSpec_TargetOneof() {}
func (m *DeploymentSpec) GetTargetOneof() isDeploymentSpec_TargetOneof {
......@@ -483,6 +488,13 @@ func (m *DeploymentSpec) GetSharedObject() *DeploymentSpec_SharedObject {
return nil
}
func (m *DeploymentSpec) GetPod() string {
if x, ok := m.GetTargetOneof().(*DeploymentSpec_Pod); ok {
return x.Pod
}
return ""
}
func (m *DeploymentSpec) GetPodProcess() *DeploymentSpec_PodProcess {
if x, ok := m.GetTargetOneof().(*DeploymentSpec_PodProcess_); ok {
return x.PodProcess
......@@ -496,6 +508,7 @@ func (*DeploymentSpec) XXX_OneofWrappers() []interface{} {
(*DeploymentSpec_Path)(nil),
(*DeploymentSpec_Upid)(nil),
(*DeploymentSpec_SharedObject_)(nil),
(*DeploymentSpec_Pod)(nil),
(*DeploymentSpec_PodProcess_)(nil),
}
}
......@@ -957,76 +970,77 @@ func init() {
}
var fileDescriptor_b26f0b8c46516e82 = []byte{
// 1098 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcd, 0x6f, 0x1b, 0x45,
0x14, 0xdf, 0x2f, 0x7f, 0x3d, 0x3b, 0xce, 0x30, 0x45, 0xc8, 0x8a, 0xd0, 0x92, 0x5a, 0x42, 0x8a,
0x82, 0xe4, 0xa8, 0x49, 0x89, 0x2a, 0x2e, 0xc1, 0x5f, 0xb1, 0x97, 0x38, 0xbb, 0x66, 0xbc, 0x0e,
0x0a, 0x97, 0xd5, 0x7a, 0x3d, 0x4d, 0x97, 0x38, 0xbb, 0xab, 0xdd, 0x75, 0x55, 0x5f, 0x10, 0x07,
0xc4, 0x89, 0x43, 0xf9, 0x2f, 0x38, 0xf0, 0x8d, 0x38, 0x72, 0x2f, 0x50, 0x20, 0xc7, 0x1e, 0x38,
0x10, 0xe7, 0x52, 0x6e, 0x3d, 0xc0, 0x1d, 0xcd, 0xf8, 0x2b, 0xad, 0x7a, 0x70, 0x7b, 0xfb, 0xfd,
0x66, 0xe7, 0xfd, 0xde, 0x6f, 0xde, 0xbc, 0x79, 0x5a, 0x78, 0x3b, 0x0a, 0x9d, 0xad, 0x28, 0x76,
0xc3, 0x81, 0xeb, 0x9d, 0x6c, 0xf5, 0x47, 0x9e, 0x7d, 0xe6, 0x3a, 0x56, 0x1c, 0xda, 0x0e, 0xe3,
0x6e, 0xb8, 0x15, 0xdd, 0xb1, 0x43, 0xda, 0x0f, 0x7a, 0x53, 0x50, 0x0a, 0x42, 0x3f, 0xf6, 0xf1,
0x9b, 0xc1, 0xa0, 0x34, 0x8b, 0x2a, 0x3d, 0x13, 0x55, 0x72, 0xc3, 0xd2, 0x64, 0x73, 0xf1, 0x27,
0x09, 0xc0, 0x0c, 0x6d, 0x87, 0x06, 0xbe, 0xeb, 0xc5, 0xf8, 0x08, 0xd2, 0xb7, 0x87, 0x9e, 0x13,
0xbb, 0xbe, 0x57, 0x90, 0xd7, 0xc5, 0x8d, 0xec, 0xf6, 0x3b, 0xa5, 0xa5, 0x84, 0x4a, 0x0b, 0x91,
0xd2, 0xfe, 0x54, 0x81, 0xcc, 0xb5, 0xf0, 0x6b, 0x90, 0x8c, 0x46, 0x67, 0x3d, 0x7f, 0x50, 0x10,
0xd7, 0xc5, 0x8d, 0x0c, 0x99, 0x32, 0xfc, 0x1e, 0x28, 0xf1, 0x28, 0xa0, 0x05, 0x69, 0x5d, 0xdc,
0xc8, 0x6f, 0xef, 0xbe, 0x78, 0x2e, 0x73, 0x14, 0x50, 0xc2, 0x35, 0xd6, 0xf6, 0x20, 0x3d, 0xcb,
0x8c, 0x31, 0x28, 0x9e, 0x7d, 0x46, 0xa7, 0xd9, 0x38, 0xc6, 0x6f, 0x40, 0x36, 0xb0, 0x43, 0xfb,
0xcc, 0x62, 0xbb, 0xa3, 0x82, 0xb4, 0x2e, 0x6f, 0x64, 0x08, 0xf0, 0x25, 0xa6, 0x12, 0x15, 0x37,
0x41, 0x61, 0x00, 0x67, 0x21, 0xd5, 0x32, 0x1a, 0x5a, 0xb5, 0xdc, 0x42, 0x02, 0xce, 0x40, 0xa2,
0xae, 0x9b, 0xe4, 0x18, 0x89, 0x18, 0x20, 0x49, 0xea, 0x66, 0x97, 0xe8, 0x48, 0x2a, 0x96, 0x41,
0xe9, 0xb6, 0xb5, 0x1a, 0x4b, 0x64, 0x47, 0x6e, 0x9f, 0x27, 0x5a, 0x21, 0x1c, 0x63, 0x04, 0x72,
0xe0, 0xf6, 0xf9, 0x99, 0x56, 0x08, 0x83, 0xf8, 0x1a, 0x24, 0xe2, 0xc8, 0xf2, 0x22, 0x5e, 0x53,
0x85, 0x28, 0x71, 0xa4, 0x47, 0xc5, 0xcf, 0x14, 0xc8, 0xd7, 0x68, 0x30, 0xf0, 0x47, 0x67, 0xd4,
0x8b, 0x3b, 0x01, 0x75, 0xf0, 0xab, 0xa0, 0x04, 0x76, 0x7c, 0x67, 0x62, 0xbb, 0x29, 0x10, 0xce,
0x70, 0x19, 0x94, 0x21, 0x13, 0x9c, 0x5c, 0xc8, 0x5b, 0x4b, 0x16, 0x89, 0xd9, 0x63, 0x12, 0x2c,
0x14, 0xbb, 0xb0, 0x32, 0x59, 0xb6, 0xfc, 0xde, 0x47, 0xd4, 0x89, 0x0b, 0x69, 0xae, 0x55, 0x59,
0x52, 0xeb, 0x69, 0x9b, 0xa5, 0x0e, 0x5f, 0x35, 0xb8, 0x52, 0x53, 0x20, 0xb9, 0xe8, 0x0a, 0xc7,
0x0e, 0x64, 0x03, 0xbf, 0x6f, 0x05, 0xa1, 0xef, 0xd0, 0x28, 0x2a, 0x00, 0x4f, 0xf4, 0xee, 0xcb,
0x25, 0x6a, 0xfb, 0xfd, 0xf6, 0x44, 0xa7, 0x29, 0x10, 0x08, 0xe6, 0x6c, 0xcd, 0x81, 0xdc, 0x55,
0x13, 0xcf, 0xbd, 0xef, 0xbd, 0x69, 0xd9, 0xa4, 0x17, 0x2e, 0xdb, 0xa4, 0x68, 0x6b, 0x47, 0x00,
0x0b, 0x03, 0xfc, 0x56, 0xfd, 0xfe, 0x34, 0x03, 0x83, 0xf8, 0x75, 0xc8, 0x38, 0xbe, 0x17, 0xdb,
0xae, 0x47, 0x43, 0x9e, 0x25, 0x43, 0x16, 0x0b, 0xb8, 0x00, 0xa9, 0x59, 0x0d, 0x64, 0xfe, 0x6d,
0x46, 0x2b, 0x79, 0xc8, 0xc5, 0x76, 0x78, 0x42, 0x63, 0xcb, 0xf7, 0xa8, 0x7f, 0xbb, 0xf8, 0xb9,
0x08, 0xb9, 0x23, 0x3b, 0x74, 0xed, 0xde, 0x80, 0xf2, 0x06, 0x3c, 0x80, 0x64, 0xe4, 0xd8, 0x03,
0x3b, 0x9c, 0xbe, 0x8b, 0x1b, 0x4b, 0x7a, 0xef, 0xf0, 0x20, 0x26, 0xd1, 0x14, 0xc8, 0x54, 0x02,
0x5f, 0x87, 0x6c, 0x14, 0x87, 0x43, 0x27, 0xe6, 0x7d, 0x3f, 0xf1, 0xc2, 0xaa, 0x39, 0x59, 0x64,
0x9b, 0x2b, 0x39, 0x00, 0xf6, 0x6d, 0x6a, 0xe7, 0x67, 0x11, 0xe4, 0x43, 0x3b, 0x78, 0x6e, 0x4d,
0x75, 0x48, 0x9f, 0xd2, 0x91, 0x35, 0x7f, 0xb3, 0xd9, 0xed, 0x9d, 0x25, 0xbd, 0x5d, 0x3d, 0x20,
0x49, 0x9d, 0xd2, 0x11, 0x3f, 0x29, 0x01, 0xb8, 0x6b, 0x0f, 0x86, 0x74, 0xe1, 0xed, 0x25, 0x15,
0x33, 0x5c, 0x86, 0xc1, 0xe2, 0xc7, 0x90, 0xa9, 0xfa, 0x5e, 0xdf, 0xe5, 0x83, 0xa0, 0x0a, 0x92,
0x1f, 0xf0, 0x23, 0xe4, 0x97, 0x16, 0x9e, 0x47, 0x97, 0x8c, 0x80, 0x48, 0x3e, 0xaf, 0xc4, 0x5d,
0x3b, 0x9c, 0x8d, 0x0c, 0x8e, 0x8b, 0x05, 0x90, 0x8c, 0x00, 0xa7, 0x40, 0xd6, 0xb5, 0xd9, 0x98,
0x78, 0xbf, 0x5b, 0x6e, 0x21, 0xb1, 0xa8, 0x41, 0xb2, 0x1d, 0xba, 0x5e, 0x7c, 0xca, 0x9e, 0x73,
0x4c, 0xef, 0xc5, 0x8b, 0xe7, 0xcc, 0x18, 0x2e, 0x3c, 0x75, 0xbb, 0x99, 0xc5, 0x55, 0x55, 0x56,
0x61, 0x85, 0xf5, 0x0f, 0xf5, 0x66, 0x9d, 0x71, 0x1d, 0x56, 0x67, 0x23, 0xad, 0x65, 0xc7, 0xd4,
0x73, 0x46, 0x38, 0x0f, 0x92, 0x3b, 0xeb, 0x42, 0xc9, 0xed, 0x6f, 0xde, 0x82, 0x74, 0xcb, 0xf6,
0x4e, 0x86, 0xf6, 0x09, 0xc5, 0x08, 0x72, 0xad, 0xb2, 0xde, 0xb0, 0xba, 0xfa, 0x81, 0x6e, 0x7c,
0xa0, 0x23, 0x01, 0x27, 0x40, 0xac, 0x22, 0x91, 0xd9, 0xac, 0xb6, 0xdb, 0x48, 0x62, 0x23, 0xac,
0x61, 0xb0, 0x3d, 0x48, 0xde, 0x3c, 0x84, 0x4c, 0xa5, 0xbd, 0xdf, 0xa4, 0x83, 0x80, 0x86, 0x38,
0x0d, 0x4a, 0xc3, 0xd0, 0x6a, 0x48, 0x60, 0xc8, 0x6c, 0x68, 0x35, 0x24, 0xe2, 0x1c, 0xa4, 0x19,
0xb2, 0xda, 0x5a, 0x0d, 0x49, 0xf8, 0x1a, 0xac, 0x72, 0xd6, 0x31, 0xcb, 0xc4, 0xb4, 0x4c, 0xed,
0xb0, 0x8e, 0x64, 0x76, 0xec, 0x03, 0x0e, 0x95, 0xcd, 0xbf, 0x24, 0x80, 0x45, 0x03, 0xb2, 0x21,
0xba, 0xb0, 0x91, 0x06, 0xa5, 0x62, 0x18, 0x2d, 0xd4, 0xc7, 0x00, 0x89, 0x4e, 0xd3, 0x20, 0x26,
0x7a, 0x20, 0xe2, 0x2c, 0x24, 0xbb, 0x13, 0xf2, 0x8b, 0x88, 0xd3, 0x20, 0x6b, 0xba, 0x89, 0x7e,
0x15, 0x71, 0x06, 0x94, 0x2e, 0x83, 0xbf, 0x71, 0xd8, 0x32, 0xf4, 0x06, 0x7a, 0xc8, 0x86, 0x6f,
0xa2, 0xcb, 0xf1, 0xef, 0x22, 0x5e, 0x81, 0x34, 0x83, 0x9c, 0xfe, 0x21, 0xe2, 0x3c, 0x64, 0xba,
0x73, 0xfe, 0x27, 0x8f, 0xd2, 0x74, 0xf3, 0x16, 0xfa, 0x8a, 0x9d, 0x37, 0xa1, 0xe9, 0xe6, 0x8d,
0x5d, 0xf4, 0xf5, 0x0c, 0xef, 0x6c, 0xa3, 0x6f, 0x66, 0x78, 0xf7, 0x26, 0xfa, 0x96, 0xe3, 0x2e,
0xdf, 0xff, 0x9d, 0xc4, 0x2d, 0x4d, 0x02, 0xbe, 0x9f, 0x93, 0x9d, 0x6d, 0xf4, 0xc3, 0x9c, 0xec,
0xde, 0x44, 0x3f, 0x4a, 0x2c, 0x43, 0xb5, 0x59, 0x26, 0xe8, 0xbe, 0xcc, 0xa3, 0x39, 0xfe, 0x82,
0xe3, 0xfd, 0x96, 0x51, 0x36, 0xd1, 0xbf, 0x32, 0xdb, 0x5f, 0x33, 0xba, 0x95, 0x56, 0x1d, 0xfd,
0x27, 0xe3, 0x57, 0x20, 0x77, 0x64, 0xb0, 0x4a, 0x1a, 0x9a, 0x6e, 0xd6, 0x09, 0xfa, 0x34, 0xc5,
0xbe, 0x77, 0x4c, 0xa2, 0xe9, 0x0d, 0xf4, 0x38, 0x85, 0x57, 0x01, 0x2a, 0xc7, 0x66, 0xdd, 0x2a,
0x13, 0x52, 0x3e, 0x46, 0xff, 0xa4, 0x30, 0x82, 0x6c, 0xc7, 0x24, 0xdd, 0xaa, 0x69, 0x55, 0x5a,
0x46, 0x05, 0x3d, 0x4c, 0x57, 0x86, 0xe7, 0x17, 0xaa, 0xf0, 0xe8, 0x42, 0x15, 0x9e, 0x5c, 0xa8,
0xe2, 0x27, 0x63, 0x55, 0xfc, 0x72, 0xac, 0x8a, 0x0f, 0xc6, 0xaa, 0x78, 0x3e, 0x56, 0xc5, 0xbf,
0xc7, 0xaa, 0xf8, 0x78, 0xac, 0x0a, 0x4f, 0xc6, 0xaa, 0x78, 0xff, 0x52, 0x15, 0xce, 0x2f, 0x55,
0xe1, 0xd1, 0xa5, 0x2a, 0x7c, 0xb8, 0x17, 0xb8, 0xf7, 0x5c, 0x3a, 0xb0, 0x7b, 0x51, 0xc9, 0x76,
0xb7, 0xe6, 0x64, 0x6b, 0xd9, 0x7f, 0x8a, 0x5e, 0x92, 0xff, 0x4d, 0xec, 0xfc, 0x1f, 0x00, 0x00,
0xff, 0xff, 0x54, 0x30, 0xfc, 0x76, 0x86, 0x08, 0x00, 0x00,
// 1112 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcd, 0x6f, 0x1b, 0xc5,
0x1b, 0xde, 0x2f, 0x7f, 0xec, 0x6b, 0xc7, 0x99, 0xdf, 0xf4, 0x27, 0x64, 0x55, 0x68, 0x49, 0x2d,
0x21, 0x45, 0x41, 0x72, 0xd4, 0xa4, 0x44, 0x15, 0x97, 0xe2, 0xaf, 0xda, 0x4b, 0x9c, 0x5d, 0x33,
0x5e, 0x07, 0x85, 0xcb, 0x6a, 0xbd, 0x9e, 0xa6, 0x4b, 0x9c, 0xdd, 0xd5, 0xee, 0xba, 0xaa, 0x2f,
0x88, 0x03, 0x47, 0x0e, 0xe5, 0xca, 0x5f, 0xc0, 0x81, 0x6f, 0xc4, 0x91, 0x7b, 0x81, 0x02, 0x39,
0xf6, 0xc0, 0x81, 0x38, 0x97, 0x72, 0xeb, 0x01, 0xee, 0x68, 0xc6, 0x5f, 0x0d, 0x70, 0x70, 0x7b,
0x7b, 0x9e, 0xd9, 0x79, 0x9f, 0xf7, 0x79, 0xdf, 0x99, 0x79, 0xb5, 0xf0, 0x7a, 0x1c, 0xb9, 0xdb,
0x71, 0xe2, 0x45, 0x43, 0xcf, 0x3f, 0xde, 0x1e, 0x8c, 0x7d, 0xe7, 0xd4, 0x73, 0xed, 0x24, 0x72,
0x5c, 0xc6, 0xbd, 0x68, 0x3b, 0xbe, 0xeb, 0x44, 0x74, 0x10, 0xf6, 0x67, 0xa0, 0x1c, 0x46, 0x41,
0x12, 0xe0, 0x57, 0xc3, 0x61, 0x79, 0x1e, 0x55, 0xfe, 0x47, 0x54, 0xd9, 0x8b, 0xca, 0xd3, 0xcd,
0xa5, 0xef, 0x24, 0x00, 0x2b, 0x72, 0x5c, 0x1a, 0x06, 0x9e, 0x9f, 0xe0, 0x43, 0xc8, 0xde, 0x19,
0xf9, 0x6e, 0xe2, 0x05, 0x7e, 0x51, 0xde, 0x10, 0x37, 0x73, 0x3b, 0x6f, 0x94, 0x57, 0x12, 0x2a,
0x2f, 0x45, 0xca, 0xb7, 0x67, 0x0a, 0x64, 0xa1, 0x85, 0x5f, 0x82, 0x74, 0x3c, 0x3e, 0xed, 0x07,
0xc3, 0xa2, 0xb8, 0x21, 0x6e, 0xaa, 0x64, 0xc6, 0xf0, 0x5b, 0xa0, 0x24, 0xe3, 0x90, 0x16, 0xa5,
0x0d, 0x71, 0xb3, 0xb0, 0xb3, 0xf7, 0xfc, 0xb9, 0xac, 0x71, 0x48, 0x09, 0xd7, 0xb8, 0x7a, 0x0b,
0xb2, 0xf3, 0xcc, 0x18, 0x83, 0xe2, 0x3b, 0xa7, 0x74, 0x96, 0x8d, 0x63, 0xfc, 0x0a, 0xe4, 0x42,
0x27, 0x72, 0x4e, 0x6d, 0xb6, 0x3b, 0x2e, 0x4a, 0x1b, 0xf2, 0xa6, 0x4a, 0x80, 0x2f, 0x31, 0x95,
0xb8, 0xb4, 0x05, 0x0a, 0x03, 0x38, 0x07, 0x99, 0xb6, 0xd9, 0xd4, 0x6b, 0x95, 0x36, 0x12, 0xb0,
0x0a, 0xa9, 0x86, 0x61, 0x91, 0x23, 0x24, 0x62, 0x80, 0x34, 0x69, 0x58, 0x3d, 0x62, 0x20, 0xa9,
0x54, 0x01, 0xa5, 0xd7, 0xd1, 0xeb, 0x2c, 0x91, 0x13, 0x7b, 0x03, 0x9e, 0x68, 0x8d, 0x70, 0x8c,
0x11, 0xc8, 0xa1, 0x37, 0xe0, 0x35, 0xad, 0x11, 0x06, 0xf1, 0x15, 0x48, 0x25, 0xb1, 0xed, 0xc7,
0xbc, 0xa7, 0x0a, 0x51, 0x92, 0xd8, 0x88, 0x4b, 0x9f, 0x28, 0x50, 0xa8, 0xd3, 0x70, 0x18, 0x8c,
0x4f, 0xa9, 0x9f, 0x74, 0x43, 0xea, 0xe2, 0xff, 0x83, 0x12, 0x3a, 0xc9, 0xdd, 0xa9, 0xed, 0x96,
0x40, 0x38, 0xc3, 0x15, 0x50, 0x46, 0x4c, 0x70, 0x7a, 0x20, 0xaf, 0xad, 0xd8, 0x24, 0x66, 0x8f,
0x49, 0xb0, 0x50, 0xec, 0xc1, 0xda, 0x74, 0xd9, 0x0e, 0xfa, 0xef, 0x51, 0x37, 0x29, 0x66, 0xb9,
0x56, 0x75, 0x45, 0xad, 0xcb, 0x36, 0xcb, 0x5d, 0xbe, 0x6a, 0x72, 0xa5, 0x96, 0x40, 0xf2, 0xf1,
0x33, 0x1c, 0x63, 0x90, 0xc3, 0x60, 0x50, 0x54, 0x67, 0x25, 0x30, 0x82, 0x5d, 0xc8, 0x85, 0xc1,
0xc0, 0x0e, 0xa3, 0xc0, 0xa5, 0x71, 0x5c, 0x04, 0x9e, 0xfc, 0xcd, 0x17, 0x4b, 0xde, 0x09, 0x06,
0x9d, 0xa9, 0x4e, 0x4b, 0x20, 0x10, 0x2e, 0xd8, 0x55, 0x17, 0xf2, 0xdd, 0xcb, 0x46, 0xfe, 0x7d,
0x07, 0x6e, 0xcd, 0x5a, 0x29, 0x3d, 0x77, 0x2b, 0xa7, 0x8d, 0xbc, 0x7a, 0x08, 0xb0, 0x34, 0xc0,
0x4f, 0x3a, 0x18, 0xcc, 0x32, 0xf0, 0x4a, 0x5f, 0x06, 0xd5, 0x0d, 0xfc, 0xc4, 0xf1, 0x7c, 0x1a,
0xf1, 0x2c, 0x2a, 0x59, 0x2e, 0xe0, 0x22, 0x64, 0xe6, 0x3d, 0x90, 0xf9, 0xb7, 0x39, 0xad, 0x16,
0x20, 0x9f, 0x38, 0xd1, 0x31, 0x4d, 0xec, 0xc0, 0xa7, 0xc1, 0x9d, 0xd2, 0x47, 0x22, 0xe4, 0x0f,
0x9d, 0xc8, 0x73, 0xfa, 0x43, 0xca, 0x2f, 0xe5, 0x3e, 0xa4, 0x63, 0xd7, 0x19, 0x3a, 0xd1, 0xec,
0xad, 0x5c, 0x5f, 0xd1, 0x7b, 0x97, 0x07, 0x31, 0x89, 0x96, 0x40, 0x66, 0x12, 0xf8, 0x1a, 0xe4,
0xe2, 0x24, 0x1a, 0xb9, 0x09, 0x7f, 0x0b, 0x53, 0x2f, 0xac, 0x9b, 0xd3, 0x45, 0xb6, 0xb9, 0x9a,
0x07, 0x60, 0xdf, 0x66, 0x76, 0xbe, 0x17, 0x41, 0x3e, 0x70, 0xc2, 0xff, 0xec, 0xa9, 0x01, 0xd9,
0x13, 0x3a, 0xb6, 0x17, 0xef, 0x38, 0xb7, 0xb3, 0xbb, 0xa2, 0xb7, 0x67, 0x0b, 0x24, 0x99, 0x13,
0x3a, 0xe6, 0x95, 0x12, 0x80, 0x7b, 0xce, 0x70, 0x44, 0x97, 0xde, 0x5e, 0x50, 0x51, 0xe5, 0x32,
0x0c, 0x96, 0xde, 0x07, 0xb5, 0x16, 0xf8, 0x03, 0x8f, 0x0f, 0x87, 0x1a, 0x48, 0x41, 0xc8, 0x4b,
0x28, 0xac, 0x2c, 0xbc, 0x88, 0x2e, 0x9b, 0x21, 0x91, 0x02, 0xde, 0x89, 0x7b, 0x4e, 0x34, 0x1f,
0x23, 0x1c, 0x97, 0x8a, 0x20, 0x99, 0x21, 0xce, 0x80, 0x6c, 0xe8, 0xf3, 0xd1, 0xf1, 0x76, 0xaf,
0xd2, 0x46, 0x62, 0x49, 0x87, 0x74, 0x27, 0xf2, 0xfc, 0xe4, 0x84, 0x3d, 0xf1, 0x84, 0xde, 0x4f,
0x96, 0x4f, 0x9c, 0x31, 0x5c, 0xbc, 0x74, 0xba, 0xea, 0xf2, 0xa8, 0xaa, 0xeb, 0xb0, 0xc6, 0xee,
0x0f, 0xf5, 0xe7, 0x37, 0xe3, 0x1a, 0xac, 0xcf, 0xc7, 0x5c, 0xdb, 0x49, 0xa8, 0xef, 0x8e, 0x71,
0x01, 0x24, 0x6f, 0x7e, 0x0b, 0x25, 0x6f, 0xb0, 0x75, 0x13, 0xb2, 0x6d, 0xc7, 0x3f, 0x1e, 0x39,
0xc7, 0x14, 0x23, 0xc8, 0xb7, 0x2b, 0x46, 0xd3, 0xee, 0x19, 0xfb, 0x86, 0xf9, 0x8e, 0x81, 0x04,
0x9c, 0x02, 0xb1, 0x86, 0x44, 0x66, 0xb3, 0xd6, 0xe9, 0x20, 0x89, 0x8d, 0xb5, 0xa6, 0xc9, 0xf6,
0x20, 0x79, 0xeb, 0x00, 0xd4, 0x6a, 0xe7, 0x76, 0x8b, 0x0e, 0x43, 0x1a, 0xe1, 0x2c, 0x28, 0x4d,
0x53, 0xaf, 0x23, 0x81, 0x21, 0xab, 0xa9, 0xd7, 0x91, 0x88, 0xf3, 0x90, 0x65, 0xc8, 0xee, 0xe8,
0x75, 0x24, 0xe1, 0x2b, 0xb0, 0xce, 0x59, 0xd7, 0xaa, 0x10, 0xcb, 0xb6, 0xf4, 0x83, 0x06, 0x92,
0x59, 0xd9, 0xfb, 0x1c, 0x2a, 0x5b, 0xbf, 0x49, 0x00, 0xcb, 0x0b, 0xc8, 0x06, 0xeb, 0xd2, 0x46,
0x16, 0x94, 0xaa, 0x69, 0xb6, 0xd1, 0x00, 0x03, 0xa4, 0xba, 0x2d, 0x93, 0x58, 0xe8, 0xa1, 0x88,
0x73, 0x90, 0xee, 0x4d, 0xc9, 0x0f, 0x22, 0xce, 0x82, 0xac, 0x1b, 0x16, 0xfa, 0x51, 0xc4, 0x2a,
0x28, 0x3d, 0x06, 0x7f, 0xe2, 0xb0, 0x6d, 0x1a, 0x4d, 0xf4, 0x88, 0x0d, 0xe4, 0x54, 0x8f, 0xe3,
0x9f, 0x45, 0xbc, 0x06, 0x59, 0x06, 0x39, 0xfd, 0x45, 0xc4, 0x05, 0x50, 0x7b, 0x0b, 0xfe, 0x2b,
0x8f, 0xd2, 0x0d, 0xeb, 0x26, 0xfa, 0x8c, 0xd5, 0x9b, 0xd2, 0x0d, 0xeb, 0xfa, 0x1e, 0xfa, 0x7c,
0x8e, 0x77, 0x77, 0xd0, 0x17, 0x73, 0xbc, 0x77, 0x03, 0x7d, 0xc9, 0x71, 0x8f, 0xef, 0xff, 0x4a,
0xe2, 0x96, 0xa6, 0x01, 0x5f, 0x2f, 0xc8, 0xee, 0x0e, 0xfa, 0x66, 0x41, 0xf6, 0x6e, 0xa0, 0x6f,
0x25, 0x96, 0xa1, 0xd6, 0xaa, 0x10, 0xf4, 0x40, 0xe6, 0xd1, 0x1c, 0x7f, 0xcc, 0xf1, 0xed, 0xb6,
0x59, 0xb1, 0xd0, 0x9f, 0x32, 0xdb, 0x5f, 0x37, 0x7b, 0xd5, 0x76, 0x03, 0xfd, 0x25, 0xe3, 0xff,
0x41, 0xfe, 0xd0, 0x64, 0x9d, 0x34, 0x75, 0xc3, 0x6a, 0x10, 0xf4, 0x61, 0x86, 0x7d, 0xef, 0x5a,
0x44, 0x37, 0x9a, 0xe8, 0x49, 0x06, 0xaf, 0x03, 0x54, 0x8f, 0xac, 0x86, 0x5d, 0x21, 0xa4, 0x72,
0x84, 0xfe, 0xc8, 0x60, 0x04, 0xb9, 0xae, 0x45, 0x7a, 0x35, 0xcb, 0xae, 0xb6, 0xcd, 0x2a, 0x7a,
0x94, 0xad, 0x8e, 0xce, 0xce, 0x35, 0xe1, 0xf1, 0xb9, 0x26, 0x3c, 0x3d, 0xd7, 0xc4, 0x0f, 0x26,
0x9a, 0xf8, 0xe9, 0x44, 0x13, 0x1f, 0x4e, 0x34, 0xf1, 0x6c, 0xa2, 0x89, 0xbf, 0x4f, 0x34, 0xf1,
0xc9, 0x44, 0x13, 0x9e, 0x4e, 0x34, 0xf1, 0xc1, 0x85, 0x26, 0x9c, 0x5d, 0x68, 0xc2, 0xe3, 0x0b,
0x4d, 0x78, 0xf7, 0x56, 0xe8, 0xdd, 0xf7, 0xe8, 0xd0, 0xe9, 0xc7, 0x65, 0xc7, 0xdb, 0x5e, 0x90,
0xed, 0x55, 0xff, 0x33, 0xfa, 0x69, 0xfe, 0x87, 0xb1, 0xfb, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff,
0xdf, 0xbe, 0x1d, 0x13, 0x9a, 0x08, 0x00, 0x00,
}
func (x Language) String() string {
......@@ -1258,6 +1272,30 @@ func (this *DeploymentSpec_SharedObject_) Equal(that interface{}) bool {
}
return true
}
func (this *DeploymentSpec_Pod) Equal(that interface{}) bool {
if that == nil {
return this == nil
}
that1, ok := that.(*DeploymentSpec_Pod)
if !ok {
that2, ok := that.(DeploymentSpec_Pod)
if ok {
that1 = &that2
} else {
return false
}
}
if that1 == nil {
return this == nil
} else if this == nil {
return false
}
if this.Pod != that1.Pod {
return false
}
return true
}
func (this *DeploymentSpec_PodProcess_) Equal(that interface{}) bool {
if that == nil {
return this == nil
......@@ -1622,7 +1660,7 @@ func (this *DeploymentSpec) GoString() string {
if this == nil {
return "nil"
}
s := make([]string, 0, 8)
s := make([]string, 0, 9)
s = append(s, "&sharedpb.DeploymentSpec{")
if this.TargetOneof != nil {
s = append(s, "TargetOneof: "+fmt.Sprintf("%#v", this.TargetOneof)+",\n")
......@@ -1654,6 +1692,14 @@ func (this *DeploymentSpec_SharedObject_) GoString() string {
`SharedObject:` + fmt.Sprintf("%#v", this.SharedObject) + `}`}, ", ")
return s
}
func (this *DeploymentSpec_Pod) GoString() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&sharedpb.DeploymentSpec_Pod{` +
`Pod:` + fmt.Sprintf("%#v", this.Pod) + `}`}, ", ")
return s
}
func (this *DeploymentSpec_PodProcess_) GoString() string {
if this == nil {
return "nil"
......@@ -2000,6 +2046,20 @@ func (m *DeploymentSpec_SharedObject_) MarshalToSizedBuffer(dAtA []byte) (int, e
}
return len(dAtA) - i, nil
}
func (m *DeploymentSpec_Pod) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *DeploymentSpec_Pod) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
i -= len(m.Pod)
copy(dAtA[i:], m.Pod)
i = encodeVarintShared(dAtA, i, uint64(len(m.Pod)))
i--
dAtA[i] = 0x4a
return len(dAtA) - i, nil
}
func (m *DeploymentSpec_PodProcess_) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
......@@ -2460,6 +2520,16 @@ func (m *DeploymentSpec_SharedObject_) Size() (n int) {
}
return n
}
func (m *DeploymentSpec_Pod) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Pod)
n += 1 + l + sovShared(uint64(l))
return n
}
func (m *DeploymentSpec_PodProcess_) Size() (n int) {
if m == nil {
return 0
......@@ -2706,6 +2776,16 @@ func (this *DeploymentSpec_SharedObject_) String() string {
}, "")
return s
}
func (this *DeploymentSpec_Pod) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&DeploymentSpec_Pod{`,
`Pod:` + fmt.Sprintf("%v", this.Pod) + `,`,
`}`,
}, "")
return s
}
func (this *DeploymentSpec_PodProcess_) String() string {
if this == nil {
return "nil"
......@@ -3338,6 +3418,38 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error {
}
m.TargetOneof = &DeploymentSpec_SharedObject_{v}
iNdEx = postIndex
case 9:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Pod", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShared
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthShared
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthShared
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.TargetOneof = &DeploymentSpec_Pod{string(dAtA[iNdEx:postIndex])}
iNdEx = postIndex
case 10:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field PodProcess", wireType)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment