From 6f601ca4e3cf61c131fdfb1c551582d60c3eb430 Mon Sep 17 00:00:00 2001 From: jose-pablo-camacho Date: Wed, 4 Dec 2024 13:36:42 -0600 Subject: [PATCH] SSPROD-49727 - add: cloudauth account oracle support (#576) * add: cloudauth account oracle support * add: cloudauth account oracle support * add: cloudauth account oracle support * add: cloudauth account oracle support * fix(cloudauth): oracle validation support * fix(cloudauth): oracle validation support * fix(cloudauth): oracle validation support * add: cloudauth account oracle support * add: cloudauth account oracle support --- .../v2/cloudauth/go/cloud_account.pb.go | 1088 ++++++++++------- ...source_sysdig_secure_cloud_auth_account.go | 9 +- ...e_sysdig_secure_cloud_auth_account_test.go | 86 ++ 3 files changed, 741 insertions(+), 442 deletions(-) diff --git a/sysdig/internal/client/v2/cloudauth/go/cloud_account.pb.go b/sysdig/internal/client/v2/cloudauth/go/cloud_account.pb.go index 7372d82a..09de70fa 100644 --- a/sysdig/internal/client/v2/cloudauth/go/cloud_account.pb.go +++ b/sysdig/internal/client/v2/cloudauth/go/cloud_account.pb.go @@ -35,6 +35,7 @@ const ( Provider_PROVIDER_OKTA Provider = 4 Provider_PROVIDER_GITHUB Provider = 5 Provider_PROVIDER_IBMCLOUD Provider = 6 + Provider_PROVIDER_ORACLECLOUD Provider = 7 ) // Enum value maps for Provider. @@ -47,6 +48,7 @@ var ( 4: "PROVIDER_OKTA", 5: "PROVIDER_GITHUB", 6: "PROVIDER_IBMCLOUD", + 7: "PROVIDER_ORACLECLOUD", } Provider_value = map[string]int32{ "PROVIDER_UNSPECIFIED": 0, @@ -56,6 +58,7 @@ var ( "PROVIDER_OKTA": 4, "PROVIDER_GITHUB": 5, "PROVIDER_IBMCLOUD": 6, + "PROVIDER_ORACLECLOUD": 7, } ) @@ -1886,6 +1889,7 @@ type ServicePrincipalMetadata struct { // *ServicePrincipalMetadata_Gcp // *ServicePrincipalMetadata_Okta_ // *ServicePrincipalMetadata_Azure_ + // *ServicePrincipalMetadata_Oci Provider isServicePrincipalMetadata_Provider `protobuf_oneof:"provider"` } @@ -1949,6 +1953,13 @@ func (x *ServicePrincipalMetadata) GetAzure() *ServicePrincipalMetadata_Azure { return nil } +func (x *ServicePrincipalMetadata) GetOci() *ServicePrincipalMetadata_OracleCloud { + if x, ok := x.GetProvider().(*ServicePrincipalMetadata_Oci); ok { + return x.Oci + } + return nil +} + type isServicePrincipalMetadata_Provider interface { isServicePrincipalMetadata_Provider() } @@ -1965,12 +1976,18 @@ type ServicePrincipalMetadata_Azure_ struct { Azure *ServicePrincipalMetadata_Azure `protobuf:"bytes,3,opt,name=azure,proto3,oneof"` } +type ServicePrincipalMetadata_Oci struct { + Oci *ServicePrincipalMetadata_OracleCloud `protobuf:"bytes,4,opt,name=oci,proto3,oneof"` +} + func (*ServicePrincipalMetadata_Gcp) isServicePrincipalMetadata_Provider() {} func (*ServicePrincipalMetadata_Okta_) isServicePrincipalMetadata_Provider() {} func (*ServicePrincipalMetadata_Azure_) isServicePrincipalMetadata_Provider() {} +func (*ServicePrincipalMetadata_Oci) isServicePrincipalMetadata_Provider() {} + // WebhookDatasourceMetadata captures the metadata associated with a webhook integration, segmented by provider type. // a webhook integration is a event push model initiated by the provider over HTTP POST requests. type WebhookDatasourceMetadata struct { @@ -2860,6 +2877,53 @@ func (x *ServicePrincipalMetadata_Azure) GetOauth2PermissionGrants() []*ServiceP return nil } +type ServicePrincipalMetadata_OracleCloud struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ApiKey *ServicePrincipalMetadata_OracleCloud_ApiKey `protobuf:"bytes,1,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` +} + +func (x *ServicePrincipalMetadata_OracleCloud) Reset() { + *x = ServicePrincipalMetadata_OracleCloud{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicePrincipalMetadata_OracleCloud) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicePrincipalMetadata_OracleCloud) ProtoMessage() {} + +func (x *ServicePrincipalMetadata_OracleCloud) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[31] + 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 ServicePrincipalMetadata_OracleCloud.ProtoReflect.Descriptor instead. +func (*ServicePrincipalMetadata_OracleCloud) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{13, 3} +} + +func (x *ServicePrincipalMetadata_OracleCloud) GetApiKey() *ServicePrincipalMetadata_OracleCloud_ApiKey { + if x != nil { + return x.ApiKey + } + return nil +} + type ServicePrincipalMetadata_GCP_Key struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2881,7 +2945,7 @@ type ServicePrincipalMetadata_GCP_Key struct { func (x *ServicePrincipalMetadata_GCP_Key) Reset() { *x = ServicePrincipalMetadata_GCP_Key{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[31] + mi := &file_cloud_account_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2894,7 +2958,7 @@ func (x *ServicePrincipalMetadata_GCP_Key) String() string { func (*ServicePrincipalMetadata_GCP_Key) ProtoMessage() {} func (x *ServicePrincipalMetadata_GCP_Key) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[31] + mi := &file_cloud_account_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3000,7 +3064,7 @@ type ServicePrincipalMetadata_GCP_WorkloadIdentityFederation struct { func (x *ServicePrincipalMetadata_GCP_WorkloadIdentityFederation) Reset() { *x = ServicePrincipalMetadata_GCP_WorkloadIdentityFederation{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[32] + mi := &file_cloud_account_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3013,7 +3077,7 @@ func (x *ServicePrincipalMetadata_GCP_WorkloadIdentityFederation) String() strin func (*ServicePrincipalMetadata_GCP_WorkloadIdentityFederation) ProtoMessage() {} func (x *ServicePrincipalMetadata_GCP_WorkloadIdentityFederation) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[32] + mi := &file_cloud_account_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3063,7 +3127,7 @@ type ServicePrincipalMetadata_Okta_OAuthApp struct { func (x *ServicePrincipalMetadata_Okta_OAuthApp) Reset() { *x = ServicePrincipalMetadata_Okta_OAuthApp{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[33] + mi := &file_cloud_account_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3076,7 +3140,7 @@ func (x *ServicePrincipalMetadata_Okta_OAuthApp) String() string { func (*ServicePrincipalMetadata_Okta_OAuthApp) ProtoMessage() {} func (x *ServicePrincipalMetadata_Okta_OAuthApp) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[33] + mi := &file_cloud_account_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3133,7 +3197,7 @@ type ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal struct { func (x *ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal) Reset() { *x = ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[34] + mi := &file_cloud_account_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3146,7 +3210,7 @@ func (x *ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal) String( func (*ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal) ProtoMessage() {} func (x *ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[34] + mi := &file_cloud_account_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3234,7 +3298,7 @@ type ServicePrincipalMetadata_Azure_Oauth2PermissionGrant struct { func (x *ServicePrincipalMetadata_Azure_Oauth2PermissionGrant) Reset() { *x = ServicePrincipalMetadata_Azure_Oauth2PermissionGrant{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[35] + mi := &file_cloud_account_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3247,7 +3311,7 @@ func (x *ServicePrincipalMetadata_Azure_Oauth2PermissionGrant) String() string { func (*ServicePrincipalMetadata_Azure_Oauth2PermissionGrant) ProtoMessage() {} func (x *ServicePrincipalMetadata_Azure_Oauth2PermissionGrant) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[35] + mi := &file_cloud_account_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3305,6 +3369,93 @@ func (x *ServicePrincipalMetadata_Azure_Oauth2PermissionGrant) GetScope() string return "" } +type ServicePrincipalMetadata_OracleCloud_ApiKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fingerprint string `protobuf:"bytes,1,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"` + KeyId string `protobuf:"bytes,3,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + KeyValue string `protobuf:"bytes,4,opt,name=key_value,json=keyValue,proto3" json:"key_value,omitempty"` + LifecycleState string `protobuf:"bytes,5,opt,name=lifecycle_state,json=lifecycleState,proto3" json:"lifecycle_state,omitempty"` + TimeCreated string `protobuf:"bytes,6,opt,name=time_created,json=timeCreated,proto3" json:"time_created,omitempty"` + UserId string `protobuf:"bytes,7,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) Reset() { + *x = ServicePrincipalMetadata_OracleCloud_ApiKey{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicePrincipalMetadata_OracleCloud_ApiKey) ProtoMessage() {} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[37] + 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 ServicePrincipalMetadata_OracleCloud_ApiKey.ProtoReflect.Descriptor instead. +func (*ServicePrincipalMetadata_OracleCloud_ApiKey) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{13, 3, 0} +} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) GetFingerprint() string { + if x != nil { + return x.Fingerprint + } + return "" +} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) GetKeyId() string { + if x != nil { + return x.KeyId + } + return "" +} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) GetKeyValue() string { + if x != nil { + return x.KeyValue + } + return "" +} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) GetLifecycleState() string { + if x != nil { + return x.LifecycleState + } + return "" +} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) GetTimeCreated() string { + if x != nil { + return x.TimeCreated + } + return "" +} + +func (x *ServicePrincipalMetadata_OracleCloud_ApiKey) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + type WebhookDatasourceMetadata_Okta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3316,7 +3467,7 @@ type WebhookDatasourceMetadata_Okta struct { func (x *WebhookDatasourceMetadata_Okta) Reset() { *x = WebhookDatasourceMetadata_Okta{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[36] + mi := &file_cloud_account_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3329,7 +3480,7 @@ func (x *WebhookDatasourceMetadata_Okta) String() string { func (*WebhookDatasourceMetadata_Okta) ProtoMessage() {} func (x *WebhookDatasourceMetadata_Okta) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[36] + mi := &file_cloud_account_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3363,7 +3514,7 @@ type WebhookDatasourceMetadata_Github struct { func (x *WebhookDatasourceMetadata_Github) Reset() { *x = WebhookDatasourceMetadata_Github{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[37] + mi := &file_cloud_account_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3376,7 +3527,7 @@ func (x *WebhookDatasourceMetadata_Github) String() string { func (*WebhookDatasourceMetadata_Github) ProtoMessage() {} func (x *WebhookDatasourceMetadata_Github) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[37] + mi := &file_cloud_account_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3411,7 +3562,7 @@ type WebhookDatasourceMetadata_Gcp struct { func (x *WebhookDatasourceMetadata_Gcp) Reset() { *x = WebhookDatasourceMetadata_Gcp{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[38] + mi := &file_cloud_account_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3424,7 +3575,7 @@ func (x *WebhookDatasourceMetadata_Gcp) String() string { func (*WebhookDatasourceMetadata_Gcp) ProtoMessage() {} func (x *WebhookDatasourceMetadata_Gcp) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[38] + mi := &file_cloud_account_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3468,7 +3619,7 @@ type WebhookDatasourceMetadata_Okta_WebhookDatasource struct { func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) Reset() { *x = WebhookDatasourceMetadata_Okta_WebhookDatasource{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[39] + mi := &file_cloud_account_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3481,7 +3632,7 @@ func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) String() string { func (*WebhookDatasourceMetadata_Okta_WebhookDatasource) ProtoMessage() {} func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[39] + mi := &file_cloud_account_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3539,7 +3690,7 @@ type WebhookDatasourceMetadata_Github_WebhookDatasource struct { func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) Reset() { *x = WebhookDatasourceMetadata_Github_WebhookDatasource{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[40] + mi := &file_cloud_account_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3552,7 +3703,7 @@ func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) String() string { func (*WebhookDatasourceMetadata_Github_WebhookDatasource) ProtoMessage() {} func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[40] + mi := &file_cloud_account_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3611,7 +3762,7 @@ type WebhookDatasourceMetadata_Gcp_WebhookDatasource struct { func (x *WebhookDatasourceMetadata_Gcp_WebhookDatasource) Reset() { *x = WebhookDatasourceMetadata_Gcp_WebhookDatasource{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[41] + mi := &file_cloud_account_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3624,7 +3775,7 @@ func (x *WebhookDatasourceMetadata_Gcp_WebhookDatasource) String() string { func (*WebhookDatasourceMetadata_Gcp_WebhookDatasource) ProtoMessage() {} func (x *WebhookDatasourceMetadata_Gcp_WebhookDatasource) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[41] + mi := &file_cloud_account_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3686,7 +3837,7 @@ type CryptoKeyMetadata_AWS struct { func (x *CryptoKeyMetadata_AWS) Reset() { *x = CryptoKeyMetadata_AWS{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[42] + mi := &file_cloud_account_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3699,7 +3850,7 @@ func (x *CryptoKeyMetadata_AWS) String() string { func (*CryptoKeyMetadata_AWS) ProtoMessage() {} func (x *CryptoKeyMetadata_AWS) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[42] + mi := &file_cloud_account_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3734,7 +3885,7 @@ type CryptoKeyMetadata_AWS_KMS struct { func (x *CryptoKeyMetadata_AWS_KMS) Reset() { *x = CryptoKeyMetadata_AWS_KMS{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[43] + mi := &file_cloud_account_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3747,7 +3898,7 @@ func (x *CryptoKeyMetadata_AWS_KMS) String() string { func (*CryptoKeyMetadata_AWS_KMS) ProtoMessage() {} func (x *CryptoKeyMetadata_AWS_KMS) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[43] + mi := &file_cloud_account_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3788,7 +3939,7 @@ type CloudLogsMetadata_AWS struct { func (x *CloudLogsMetadata_AWS) Reset() { *x = CloudLogsMetadata_AWS{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[44] + mi := &file_cloud_account_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3801,7 +3952,7 @@ func (x *CloudLogsMetadata_AWS) String() string { func (*CloudLogsMetadata_AWS) ProtoMessage() {} func (x *CloudLogsMetadata_AWS) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[44] + mi := &file_cloud_account_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3840,7 +3991,7 @@ type CloudLogsMetadata_AWS_CloudTrailS3Bucket struct { func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) Reset() { *x = CloudLogsMetadata_AWS_CloudTrailS3Bucket{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[45] + mi := &file_cloud_account_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3853,7 +4004,7 @@ func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) String() string { func (*CloudLogsMetadata_AWS_CloudTrailS3Bucket) ProtoMessage() {} func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[45] + mi := &file_cloud_account_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4340,7 +4491,7 @@ var file_cloud_account_proto_rawDesc = []byte{ 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x96, 0x11, 0x0a, + 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x9d, 0x14, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, @@ -4354,355 +4505,381 @@ var file_cloud_account_proto_rawDesc = []byte{ 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x1a, - 0xd8, 0x06, 0x0a, 0x03, 0x47, 0x43, 0x50, 0x12, 0x3f, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, - 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x2e, - 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x86, 0x01, 0x0a, 0x1c, 0x77, 0x6f, 0x72, - 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x66, - 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x44, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, - 0x6f, 0x61, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x65, 0x64, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, - 0xaf, 0x03, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0e, 0x70, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, - 0x43, 0x4d, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x49, 0x64, - 0x12, 0x2f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, - 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, - 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1b, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, - 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, - 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x58, 0x35, 0x30, 0x39, - 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58, 0x35, 0x30, - 0x39, 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x69, 0x76, - 0x65, 0x72, 0x73, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x1a, 0x86, 0x01, 0x0a, 0x1a, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6f, 0x6f, - 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0xf6, 0x01, 0x0a, 0x04, 0x4f, - 0x6b, 0x74, 0x61, 0x12, 0x50, 0x0a, 0x09, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x61, 0x70, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, + 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, + 0x45, 0x0a, 0x03, 0x6f, 0x63, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x64, + 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x48, + 0x00, 0x52, 0x03, 0x6f, 0x63, 0x69, 0x1a, 0xd8, 0x06, 0x0a, 0x03, 0x47, 0x43, 0x50, 0x12, 0x3f, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x72, + 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x86, 0x01, 0x0a, 0x1c, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, - 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, - 0x74, 0x61, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x52, 0x08, 0x6f, 0x61, 0x75, - 0x74, 0x68, 0x41, 0x70, 0x70, 0x1a, 0x9b, 0x01, 0x0a, 0x08, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, - 0x70, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6b, 0x74, 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6b, 0x74, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x2b, 0x0a, - 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, - 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0d, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, - 0x4d, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4a, - 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x1a, 0xd3, 0x06, 0x0a, 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x98, 0x01, - 0x0a, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, - 0x69, 0x70, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x64, 0x72, 0x61, - 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, - 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x52, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, - 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x7b, 0x0a, 0x18, 0x6f, 0x61, 0x75, 0x74, - 0x68, 0x32, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x64, 0x72, 0x61, - 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x16, 0x6f, + 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, + 0x50, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x65, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x36, + 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x15, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xaf, 0x03, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x34, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, + 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, + 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0a, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, + 0x5f, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, + 0x55, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x69, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x69, + 0x12, 0x3c, 0x0a, 0x1b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x2f, + 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, 0x63, 0x65, + 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, + 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, + 0x73, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x1a, 0x86, 0x01, 0x0a, 0x1a, 0x57, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x65, 0x64, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, + 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6f, 0x6f, 0x6c, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x1a, 0xf6, 0x01, 0x0a, 0x04, 0x4f, 0x6b, 0x74, 0x61, 0x12, 0x50, 0x0a, 0x09, 0x6f, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, + 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, + 0x70, 0x70, 0x52, 0x08, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x1a, 0x9b, 0x01, 0x0a, + 0x08, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6b, 0x74, + 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6b, 0x74, + 0x61, 0x55, 0x72, 0x6c, 0x12, 0x2b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, + 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x33, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, + 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, 0x0c, 0x69, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x1a, 0xd3, 0x06, 0x0a, 0x05, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x4b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x52, 0x1f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, + 0x7b, 0x0a, 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x41, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0xe7, 0x02, 0x0a, 0x1f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x70, - 0x70, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, - 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, - 0x70, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x70, 0x70, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x70, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, - 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, - 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, - 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x1a, - 0xc1, 0x01, 0x0a, 0x15, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x69, - 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, - 0x6f, 0x70, 0x65, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xdb, 0x09, 0x0a, 0x19, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x48, 0x00, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, - 0x3e, 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, - 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x63, 0x70, 0x48, 0x00, 0x52, 0x03, 0x67, 0x63, 0x70, 0x1a, - 0x95, 0x02, 0x0a, 0x04, 0x4f, 0x6b, 0x74, 0x61, 0x12, 0x6c, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, - 0x61, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x9e, 0x01, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, - 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x67, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, - 0x10, 0x6f, 0x6b, 0x74, 0x61, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6b, 0x74, 0x61, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xa5, 0x02, 0x0a, 0x06, 0x47, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x12, 0x6e, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, - 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, - 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x57, 0x65, - 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x1a, 0xaa, 0x01, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, - 0xa5, 0x03, 0x0a, 0x03, 0x47, 0x63, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, + 0x72, 0x61, 0x6e, 0x74, 0x52, 0x16, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x50, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0xe7, 0x02, 0x0a, + 0x1f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x70, 0x70, + 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x70, + 0x70, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, + 0x70, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x34, 0x0a, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, + 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, + 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xc1, 0x01, 0x0a, 0x15, 0x4f, 0x61, 0x75, 0x74, 0x68, + 0x32, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, + 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, + 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, + 0x1a, 0xbd, 0x02, 0x0a, 0x0b, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x12, 0x51, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x61, 0x70, 0x69, + 0x4b, 0x65, 0x79, 0x1a, 0xda, 0x01, 0x0a, 0x06, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x20, + 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, + 0x12, 0x15, 0x0a, 0x06, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, + 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, + 0x0f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xdb, 0x09, 0x0a, + 0x19, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x04, 0x6f, 0x6b, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, + 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x12, 0x47, 0x0a, + 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x48, 0x00, 0x52, 0x06, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x3e, 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x63, 0x70, 0x2e, - 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x1a, 0xd8, 0x01, 0x0a, - 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, - 0x75, 0x62, 0x73, 0x75, 0x62, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x69, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, - 0x75, 0x73, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x75, 0x73, - 0x68, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x22, 0xcf, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, - 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x03, 0x61, 0x77, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, - 0x73, 0x1a, 0x76, 0x0a, 0x03, 0x41, 0x57, 0x53, 0x12, 0x38, 0x0a, 0x03, 0x6b, 0x6d, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x2e, 0x4b, 0x4d, 0x53, 0x52, 0x03, 0x6b, - 0x6d, 0x73, 0x1a, 0x35, 0x0a, 0x03, 0x4b, 0x4d, 0x53, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xa0, 0x03, 0x0a, 0x11, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, - 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x03, 0x61, - 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, - 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, - 0x61, 0x77, 0x73, 0x1a, 0xc6, 0x02, 0x0a, 0x03, 0x41, 0x57, 0x53, 0x12, 0x67, 0x0a, 0x14, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x73, 0x33, 0x5f, 0x62, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x72, 0x61, 0x69, - 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, - 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x2e, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x52, 0x12, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x1a, 0xd5, 0x01, 0x0a, 0x12, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x72, - 0x61, 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x41, 0x72, 0x6e, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, - 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2a, 0x9b, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, - 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x57, 0x53, 0x10, - 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x5a, - 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, - 0x52, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x52, 0x4f, 0x56, 0x49, - 0x44, 0x45, 0x52, 0x5f, 0x4f, 0x4b, 0x54, 0x41, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, - 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x10, 0x05, 0x12, - 0x15, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x49, 0x42, 0x4d, 0x43, - 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x06, 0x2a, 0xef, 0x02, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x46, - 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x5f, 0x54, 0x48, - 0x52, 0x45, 0x41, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, - 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, - 0x52, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x55, 0x52, - 0x45, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, - 0x45, 0x43, 0x55, 0x52, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x45, - 0x4e, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, - 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, - 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, 0x04, 0x12, - 0x25, 0x0a, 0x21, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, - 0x45, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x43, 0x41, 0x4e, - 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x2f, 0x0a, 0x2b, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, - 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, - 0x44, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4b, 0x55, 0x42, 0x45, 0x52, - 0x4e, 0x45, 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x2f, 0x0a, 0x2b, 0x46, 0x45, 0x41, 0x54, 0x55, + 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x63, 0x70, 0x48, + 0x00, 0x52, 0x03, 0x67, 0x63, 0x70, 0x1a, 0x95, 0x02, 0x0a, 0x04, 0x4f, 0x6b, 0x74, 0x61, 0x12, + 0x6c, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x64, 0x72, + 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x9e, 0x01, + 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x6b, 0x74, 0x61, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x6f, 0x6b, 0x74, 0x61, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xa5, + 0x02, 0x0a, 0x06, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x6e, 0x0a, 0x12, 0x77, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xaa, 0x01, 0x0a, 0x11, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, + 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, + 0x12, 0x34, 0x0a, 0x16, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x14, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0xa5, 0x03, 0x0a, 0x03, 0x47, 0x63, 0x70, 0x12, 0x6b, + 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x64, 0x72, 0x61, + 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x47, 0x63, 0x70, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x11, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, + 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, + 0x50, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, + 0x70, 0x61, 0x6c, 0x1a, 0xd8, 0x01, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x75, 0x62, + 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x6e, 0x6b, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x6e, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x14, 0x70, 0x75, 0x73, 0x68, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x70, 0x75, 0x73, 0x68, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1f, 0x0a, + 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x42, 0x0a, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xcf, 0x01, 0x0a, 0x11, 0x43, + 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x36, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, + 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 0x1a, 0x76, 0x0a, 0x03, 0x41, 0x57, 0x53, 0x12, + 0x38, 0x0a, 0x03, 0x6b, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, + 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, + 0x6f, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, + 0x2e, 0x4b, 0x4d, 0x53, 0x52, 0x03, 0x6b, 0x6d, 0x73, 0x1a, 0x35, 0x0a, 0x03, 0x4b, 0x4d, 0x53, + 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, + 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xa0, 0x03, 0x0a, + 0x11, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x36, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x41, 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 0x1a, 0xc6, 0x02, 0x0a, 0x03, 0x41, + 0x57, 0x53, 0x12, 0x67, 0x0a, 0x14, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, 0x6c, + 0x5f, 0x73, 0x33, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x41, 0x57, 0x53, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x53, + 0x33, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x12, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, + 0x61, 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0xd5, 0x01, 0x0a, 0x12, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x72, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, + 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, + 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6f, 0x6c, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x41, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, + 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2a, + 0xb5, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x14, + 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, + 0x45, 0x52, 0x5f, 0x41, 0x57, 0x53, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x52, 0x4f, 0x56, + 0x49, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, + 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x47, 0x43, 0x50, 0x10, 0x03, 0x12, 0x11, + 0x0a, 0x0d, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x4f, 0x4b, 0x54, 0x41, 0x10, + 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x47, 0x49, + 0x54, 0x48, 0x55, 0x42, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, + 0x45, 0x52, 0x5f, 0x49, 0x42, 0x4d, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x06, 0x12, 0x18, 0x0a, + 0x14, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x4f, 0x52, 0x41, 0x43, 0x4c, 0x45, + 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x07, 0x2a, 0xef, 0x02, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, + 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x5f, 0x54, + 0x48, 0x52, 0x45, 0x41, 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, + 0x55, 0x52, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x55, + 0x52, 0x45, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, + 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, + 0x45, 0x4e, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, + 0x1d, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, + 0x5f, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, 0x04, + 0x12, 0x25, 0x0a, 0x21, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, + 0x52, 0x45, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x43, 0x41, + 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x2f, 0x0a, 0x2b, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, - 0x41, 0x44, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x41, 0x49, 0x4e, 0x45, 0x52, 0x53, 0x10, 0x07, 0x12, 0x2e, 0x0a, 0x2a, 0x46, 0x45, 0x41, 0x54, + 0x41, 0x44, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x4b, 0x55, 0x42, 0x45, + 0x52, 0x4e, 0x45, 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x2f, 0x0a, 0x2b, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x4c, - 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x55, 0x4e, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x08, 0x2a, 0xa9, 0x01, 0x0a, 0x09, 0x56, 0x65, 0x72, - 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, - 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x49, - 0x44, 0x45, 0x4e, 0x54, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, - 0x49, 0x54, 0x59, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x45, - 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x23, 0x12, 0x14, - 0x0a, 0x10, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x45, 0x54, 0x41, - 0x49, 0x4c, 0x10, 0x28, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, - 0x59, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, - 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x3c, 0x22, 0x04, - 0x08, 0x01, 0x10, 0x03, 0x2a, 0x60, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x74, 0x6f, - 0x72, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x20, 0x52, - 0x45, 0x47, 0x55, 0x4c, 0x41, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, - 0x4f, 0x52, 0x4b, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x54, 0x4f, 0x52, 0x59, 0x5f, - 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x55, 0x53, 0x5f, 0x46, 0x45, 0x44, - 0x52, 0x41, 0x4d, 0x50, 0x10, 0x01, 0x2a, 0x5c, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x1e, 0x50, - 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x23, 0x0a, 0x1f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x54, - 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x57, 0x53, 0x5f, 0x47, 0x4f, 0x56, 0x43, 0x4c, 0x4f, - 0x55, 0x44, 0x10, 0x01, 0x2a, 0xfd, 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x53, 0x10, 0x07, 0x12, 0x2e, 0x0a, 0x2a, 0x46, 0x45, 0x41, + 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, + 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x55, + 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x08, 0x2a, 0xa9, 0x01, 0x0a, 0x09, 0x56, 0x65, + 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x45, 0x52, 0x42, 0x4f, + 0x53, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, + 0x49, 0x44, 0x45, 0x4e, 0x54, 0x10, 0x14, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x45, 0x52, 0x42, 0x4f, + 0x53, 0x49, 0x54, 0x59, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x1e, 0x12, 0x12, 0x0a, 0x0e, 0x56, + 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x23, 0x12, + 0x14, 0x0a, 0x10, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x45, 0x54, + 0x41, 0x49, 0x4c, 0x10, 0x28, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, 0x42, 0x4f, 0x53, 0x49, + 0x54, 0x59, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, + 0x52, 0x42, 0x4f, 0x53, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x3c, 0x22, + 0x04, 0x08, 0x01, 0x10, 0x03, 0x2a, 0x60, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x74, + 0x6f, 0x72, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x20, + 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, + 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x54, 0x4f, 0x52, 0x59, + 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x55, 0x53, 0x5f, 0x46, 0x45, + 0x44, 0x52, 0x41, 0x4d, 0x50, 0x10, 0x01, 0x2a, 0x5c, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x1e, + 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x57, 0x53, 0x5f, 0x47, 0x4f, 0x56, 0x43, 0x4c, + 0x4f, 0x55, 0x44, 0x10, 0x01, 0x2a, 0xfd, 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, + 0x19, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, + 0x4c, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, - 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x56, + 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, - 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x56, 0x41, + 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, - 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x50, - 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x04, - 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, - 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x55, 0x4e, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x4d, 0x45, 0x4e, - 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, - 0x4e, 0x47, 0x10, 0x06, 0x2a, 0x93, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x43, - 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x1e, 0x0a, 0x1a, 0x56, - 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, - 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x14, 0x12, 0x1d, 0x0a, 0x19, 0x56, + 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, + 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x55, 0x4e, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x4d, 0x45, + 0x4e, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x57, 0x41, 0x52, 0x4e, + 0x49, 0x4e, 0x47, 0x10, 0x06, 0x2a, 0x93, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, 0x5f, - 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x44, 0x10, 0x1e, 0x2a, 0xf4, 0x01, 0x0a, 0x09, 0x43, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50, - 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, - 0x5f, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, - 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, - 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x1a, - 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, - 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, - 0x50, 0x52, 0x49, 0x4e, 0x43, 0x49, 0x50, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x43, - 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a, - 0x14, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x59, 0x50, 0x54, - 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x4d, 0x50, 0x4f, - 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x4c, 0x4f, 0x47, 0x53, 0x10, - 0x07, 0x3a, 0x3f, 0x0a, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd1, - 0x86, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x56, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, - 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, - 0x10, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x48, 0x01, 0x5a, 0x25, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x64, - 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x1e, 0x0a, 0x1a, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x14, 0x12, 0x1d, 0x0a, 0x19, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x47, 0x45, + 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x44, 0x10, 0x1e, 0x2a, 0xf4, 0x01, 0x0a, 0x09, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, + 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, + 0x54, 0x5f, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, + 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x10, 0x03, 0x12, + 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x43, + 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x50, 0x52, 0x49, 0x4e, 0x43, 0x49, 0x50, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, + 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, + 0x4b, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x05, 0x12, 0x18, + 0x0a, 0x14, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x59, 0x50, + 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x4d, 0x50, + 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x4c, 0x4f, 0x47, 0x53, + 0x10, 0x07, 0x3a, 0x3f, 0x0a, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0xd1, 0x86, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x56, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, + 0x73, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x42, 0x10, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x48, 0x01, 0x5a, 0x25, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x6f, 0x2f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, + 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -4718,7 +4895,7 @@ func file_cloud_account_proto_rawDescGZIP() []byte { } var file_cloud_account_proto_enumTypes = make([]protoimpl.EnumInfo, 8) -var file_cloud_account_proto_msgTypes = make([]protoimpl.MessageInfo, 46) +var file_cloud_account_proto_msgTypes = make([]protoimpl.MessageInfo, 48) var file_cloud_account_proto_goTypes = []interface{}{ (Provider)(0), // 0: draiosproto.Provider (Feature)(0), // 1: draiosproto.Feature @@ -4759,31 +4936,33 @@ var file_cloud_account_proto_goTypes = []interface{}{ (*ServicePrincipalMetadata_GCP)(nil), // 36: draiosproto.ServicePrincipalMetadata.GCP (*ServicePrincipalMetadata_Okta)(nil), // 37: draiosproto.ServicePrincipalMetadata.Okta (*ServicePrincipalMetadata_Azure)(nil), // 38: draiosproto.ServicePrincipalMetadata.Azure - (*ServicePrincipalMetadata_GCP_Key)(nil), // 39: draiosproto.ServicePrincipalMetadata.GCP.Key - (*ServicePrincipalMetadata_GCP_WorkloadIdentityFederation)(nil), // 40: draiosproto.ServicePrincipalMetadata.GCP.WorkloadIdentityFederation - (*ServicePrincipalMetadata_Okta_OAuthApp)(nil), // 41: draiosproto.ServicePrincipalMetadata.Okta.OAuthApp - (*ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal)(nil), // 42: draiosproto.ServicePrincipalMetadata.Azure.ActiveDirectoryServicePrincipal - (*ServicePrincipalMetadata_Azure_Oauth2PermissionGrant)(nil), // 43: draiosproto.ServicePrincipalMetadata.Azure.Oauth2PermissionGrant - (*WebhookDatasourceMetadata_Okta)(nil), // 44: draiosproto.WebhookDatasourceMetadata.Okta - (*WebhookDatasourceMetadata_Github)(nil), // 45: draiosproto.WebhookDatasourceMetadata.Github - (*WebhookDatasourceMetadata_Gcp)(nil), // 46: draiosproto.WebhookDatasourceMetadata.Gcp - (*WebhookDatasourceMetadata_Okta_WebhookDatasource)(nil), // 47: draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource - (*WebhookDatasourceMetadata_Github_WebhookDatasource)(nil), // 48: draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource - (*WebhookDatasourceMetadata_Gcp_WebhookDatasource)(nil), // 49: draiosproto.WebhookDatasourceMetadata.Gcp.WebhookDatasource - (*CryptoKeyMetadata_AWS)(nil), // 50: draiosproto.CryptoKeyMetadata.AWS - (*CryptoKeyMetadata_AWS_KMS)(nil), // 51: draiosproto.CryptoKeyMetadata.AWS.KMS - (*CloudLogsMetadata_AWS)(nil), // 52: draiosproto.CloudLogsMetadata.AWS - (*CloudLogsMetadata_AWS_CloudTrailS3Bucket)(nil), // 53: draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket - (*timestamppb.Timestamp)(nil), // 54: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 55: google.protobuf.Duration - (*structpb.Value)(nil), // 56: google.protobuf.Value - (*descriptorpb.FieldOptions)(nil), // 57: google.protobuf.FieldOptions + (*ServicePrincipalMetadata_OracleCloud)(nil), // 39: draiosproto.ServicePrincipalMetadata.OracleCloud + (*ServicePrincipalMetadata_GCP_Key)(nil), // 40: draiosproto.ServicePrincipalMetadata.GCP.Key + (*ServicePrincipalMetadata_GCP_WorkloadIdentityFederation)(nil), // 41: draiosproto.ServicePrincipalMetadata.GCP.WorkloadIdentityFederation + (*ServicePrincipalMetadata_Okta_OAuthApp)(nil), // 42: draiosproto.ServicePrincipalMetadata.Okta.OAuthApp + (*ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal)(nil), // 43: draiosproto.ServicePrincipalMetadata.Azure.ActiveDirectoryServicePrincipal + (*ServicePrincipalMetadata_Azure_Oauth2PermissionGrant)(nil), // 44: draiosproto.ServicePrincipalMetadata.Azure.Oauth2PermissionGrant + (*ServicePrincipalMetadata_OracleCloud_ApiKey)(nil), // 45: draiosproto.ServicePrincipalMetadata.OracleCloud.ApiKey + (*WebhookDatasourceMetadata_Okta)(nil), // 46: draiosproto.WebhookDatasourceMetadata.Okta + (*WebhookDatasourceMetadata_Github)(nil), // 47: draiosproto.WebhookDatasourceMetadata.Github + (*WebhookDatasourceMetadata_Gcp)(nil), // 48: draiosproto.WebhookDatasourceMetadata.Gcp + (*WebhookDatasourceMetadata_Okta_WebhookDatasource)(nil), // 49: draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource + (*WebhookDatasourceMetadata_Github_WebhookDatasource)(nil), // 50: draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource + (*WebhookDatasourceMetadata_Gcp_WebhookDatasource)(nil), // 51: draiosproto.WebhookDatasourceMetadata.Gcp.WebhookDatasource + (*CryptoKeyMetadata_AWS)(nil), // 52: draiosproto.CryptoKeyMetadata.AWS + (*CryptoKeyMetadata_AWS_KMS)(nil), // 53: draiosproto.CryptoKeyMetadata.AWS.KMS + (*CloudLogsMetadata_AWS)(nil), // 54: draiosproto.CloudLogsMetadata.AWS + (*CloudLogsMetadata_AWS_CloudTrailS3Bucket)(nil), // 55: draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket + (*timestamppb.Timestamp)(nil), // 56: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 57: google.protobuf.Duration + (*structpb.Value)(nil), // 58: google.protobuf.Value + (*descriptorpb.FieldOptions)(nil), // 59: google.protobuf.FieldOptions } var file_cloud_account_proto_depIdxs = []int32{ 0, // 0: draiosproto.CloudAccount.provider:type_name -> draiosproto.Provider 9, // 1: draiosproto.CloudAccount.feature:type_name -> draiosproto.AccountFeatures - 54, // 2: draiosproto.CloudAccount.created_at:type_name -> google.protobuf.Timestamp - 54, // 3: draiosproto.CloudAccount.updated_at:type_name -> google.protobuf.Timestamp + 56, // 2: draiosproto.CloudAccount.created_at:type_name -> google.protobuf.Timestamp + 56, // 3: draiosproto.CloudAccount.updated_at:type_name -> google.protobuf.Timestamp 17, // 4: draiosproto.CloudAccount.components:type_name -> draiosproto.AccountComponent 14, // 5: draiosproto.CloudAccount.validation:type_name -> draiosproto.Validation 2, // 6: draiosproto.CloudAccount.verbosity:type_name -> draiosproto.Verbosity @@ -4798,22 +4977,22 @@ var file_cloud_account_proto_depIdxs = []int32{ 10, // 15: draiosproto.AccountFeatures.secure_workload_scanning_containers:type_name -> draiosproto.AccountFeature 10, // 16: draiosproto.AccountFeatures.secure_workload_scanning_functions:type_name -> draiosproto.AccountFeature 1, // 17: draiosproto.AccountFeature.type:type_name -> draiosproto.Feature - 54, // 18: draiosproto.AccountFeature.created_at:type_name -> google.protobuf.Timestamp + 56, // 18: draiosproto.AccountFeature.created_at:type_name -> google.protobuf.Timestamp 14, // 19: draiosproto.AccountFeature.validation:type_name -> draiosproto.Validation 25, // 20: draiosproto.AccountFeature.flags:type_name -> draiosproto.AccountFeature.FlagsEntry - 55, // 21: draiosproto.ValidationStep.duration:type_name -> google.protobuf.Duration + 57, // 21: draiosproto.ValidationStep.duration:type_name -> google.protobuf.Duration 12, // 22: draiosproto.ValidationStep.error:type_name -> draiosproto.ValidationError 13, // 23: draiosproto.ValidationStep.warning:type_name -> draiosproto.ValidationWarning 6, // 24: draiosproto.ValidationStep.stage:type_name -> draiosproto.ValidationStage - 56, // 25: draiosproto.ValidationError.detail:type_name -> google.protobuf.Value - 56, // 26: draiosproto.ValidationWarning.detail:type_name -> google.protobuf.Value + 58, // 25: draiosproto.ValidationError.detail:type_name -> google.protobuf.Value + 58, // 26: draiosproto.ValidationWarning.detail:type_name -> google.protobuf.Value 5, // 27: draiosproto.Validation.result:type_name -> draiosproto.ValidationResult - 54, // 28: draiosproto.Validation.timestamp:type_name -> google.protobuf.Timestamp + 56, // 28: draiosproto.Validation.timestamp:type_name -> google.protobuf.Timestamp 11, // 29: draiosproto.Validation.steps:type_name -> draiosproto.ValidationStep 6, // 30: draiosproto.Validation.disposition:type_name -> draiosproto.ValidationStage 8, // 31: draiosproto.CloudOrganization.accounts:type_name -> draiosproto.CloudAccount - 54, // 32: draiosproto.CloudOrganization.created_at:type_name -> google.protobuf.Timestamp - 54, // 33: draiosproto.CloudOrganization.updated_at:type_name -> google.protobuf.Timestamp + 56, // 32: draiosproto.CloudOrganization.created_at:type_name -> google.protobuf.Timestamp + 56, // 33: draiosproto.CloudOrganization.updated_at:type_name -> google.protobuf.Timestamp 0, // 34: draiosproto.CloudOrganization.provider:type_name -> draiosproto.Provider 14, // 35: draiosproto.CloudOrganization.validation:type_name -> draiosproto.Validation 2, // 36: draiosproto.CloudOrganization.verbosity:type_name -> draiosproto.Verbosity @@ -4826,8 +5005,8 @@ var file_cloud_account_proto_depIdxs = []int32{ 17, // 43: draiosproto.FeatureComponents.crypto_key:type_name -> draiosproto.AccountComponent 17, // 44: draiosproto.FeatureComponents.cloud_logs:type_name -> draiosproto.AccountComponent 7, // 45: draiosproto.AccountComponent.type:type_name -> draiosproto.Component - 54, // 46: draiosproto.AccountComponent.created_at:type_name -> google.protobuf.Timestamp - 54, // 47: draiosproto.AccountComponent.updated_at:type_name -> google.protobuf.Timestamp + 56, // 46: draiosproto.AccountComponent.created_at:type_name -> google.protobuf.Timestamp + 56, // 47: draiosproto.AccountComponent.updated_at:type_name -> google.protobuf.Timestamp 14, // 48: draiosproto.AccountComponent.validation:type_name -> draiosproto.Validation 18, // 49: draiosproto.AccountComponent.cloud_connector_metadata:type_name -> draiosproto.CloudConnectorMetadata 19, // 50: draiosproto.AccountComponent.trusted_role_metadata:type_name -> draiosproto.TrustedRoleMetadata @@ -4848,30 +5027,32 @@ var file_cloud_account_proto_depIdxs = []int32{ 36, // 65: draiosproto.ServicePrincipalMetadata.gcp:type_name -> draiosproto.ServicePrincipalMetadata.GCP 37, // 66: draiosproto.ServicePrincipalMetadata.okta:type_name -> draiosproto.ServicePrincipalMetadata.Okta 38, // 67: draiosproto.ServicePrincipalMetadata.azure:type_name -> draiosproto.ServicePrincipalMetadata.Azure - 44, // 68: draiosproto.WebhookDatasourceMetadata.okta:type_name -> draiosproto.WebhookDatasourceMetadata.Okta - 45, // 69: draiosproto.WebhookDatasourceMetadata.github:type_name -> draiosproto.WebhookDatasourceMetadata.Github - 46, // 70: draiosproto.WebhookDatasourceMetadata.gcp:type_name -> draiosproto.WebhookDatasourceMetadata.Gcp - 50, // 71: draiosproto.CryptoKeyMetadata.aws:type_name -> draiosproto.CryptoKeyMetadata.AWS - 52, // 72: draiosproto.CloudLogsMetadata.aws:type_name -> draiosproto.CloudLogsMetadata.AWS - 35, // 73: draiosproto.EventBridgeMetadata.Azure.event_hub_metadata:type_name -> draiosproto.EventBridgeMetadata.Azure.EventHubMetadata - 38, // 74: draiosproto.EventBridgeMetadata.Azure.service_principal:type_name -> draiosproto.ServicePrincipalMetadata.Azure - 39, // 75: draiosproto.ServicePrincipalMetadata.GCP.key:type_name -> draiosproto.ServicePrincipalMetadata.GCP.Key - 40, // 76: draiosproto.ServicePrincipalMetadata.GCP.workload_identity_federation:type_name -> draiosproto.ServicePrincipalMetadata.GCP.WorkloadIdentityFederation - 41, // 77: draiosproto.ServicePrincipalMetadata.Okta.oauth_app:type_name -> draiosproto.ServicePrincipalMetadata.Okta.OAuthApp - 42, // 78: draiosproto.ServicePrincipalMetadata.Azure.active_directory_service_principal:type_name -> draiosproto.ServicePrincipalMetadata.Azure.ActiveDirectoryServicePrincipal - 43, // 79: draiosproto.ServicePrincipalMetadata.Azure.oauth2_permission_grants:type_name -> draiosproto.ServicePrincipalMetadata.Azure.Oauth2PermissionGrant - 47, // 80: draiosproto.WebhookDatasourceMetadata.Okta.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource - 48, // 81: draiosproto.WebhookDatasourceMetadata.Github.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource - 49, // 82: draiosproto.WebhookDatasourceMetadata.Gcp.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Gcp.WebhookDatasource - 36, // 83: draiosproto.WebhookDatasourceMetadata.Gcp.service_principal:type_name -> draiosproto.ServicePrincipalMetadata.GCP - 51, // 84: draiosproto.CryptoKeyMetadata.AWS.kms:type_name -> draiosproto.CryptoKeyMetadata.AWS.KMS - 53, // 85: draiosproto.CloudLogsMetadata.AWS.cloudtrail_s3_bucket:type_name -> draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket - 57, // 86: draiosproto.encryption:extendee -> google.protobuf.FieldOptions - 87, // [87:87] is the sub-list for method output_type - 87, // [87:87] is the sub-list for method input_type - 87, // [87:87] is the sub-list for extension type_name - 86, // [86:87] is the sub-list for extension extendee - 0, // [0:86] is the sub-list for field type_name + 39, // 68: draiosproto.ServicePrincipalMetadata.oci:type_name -> draiosproto.ServicePrincipalMetadata.OracleCloud + 46, // 69: draiosproto.WebhookDatasourceMetadata.okta:type_name -> draiosproto.WebhookDatasourceMetadata.Okta + 47, // 70: draiosproto.WebhookDatasourceMetadata.github:type_name -> draiosproto.WebhookDatasourceMetadata.Github + 48, // 71: draiosproto.WebhookDatasourceMetadata.gcp:type_name -> draiosproto.WebhookDatasourceMetadata.Gcp + 52, // 72: draiosproto.CryptoKeyMetadata.aws:type_name -> draiosproto.CryptoKeyMetadata.AWS + 54, // 73: draiosproto.CloudLogsMetadata.aws:type_name -> draiosproto.CloudLogsMetadata.AWS + 35, // 74: draiosproto.EventBridgeMetadata.Azure.event_hub_metadata:type_name -> draiosproto.EventBridgeMetadata.Azure.EventHubMetadata + 38, // 75: draiosproto.EventBridgeMetadata.Azure.service_principal:type_name -> draiosproto.ServicePrincipalMetadata.Azure + 40, // 76: draiosproto.ServicePrincipalMetadata.GCP.key:type_name -> draiosproto.ServicePrincipalMetadata.GCP.Key + 41, // 77: draiosproto.ServicePrincipalMetadata.GCP.workload_identity_federation:type_name -> draiosproto.ServicePrincipalMetadata.GCP.WorkloadIdentityFederation + 42, // 78: draiosproto.ServicePrincipalMetadata.Okta.oauth_app:type_name -> draiosproto.ServicePrincipalMetadata.Okta.OAuthApp + 43, // 79: draiosproto.ServicePrincipalMetadata.Azure.active_directory_service_principal:type_name -> draiosproto.ServicePrincipalMetadata.Azure.ActiveDirectoryServicePrincipal + 44, // 80: draiosproto.ServicePrincipalMetadata.Azure.oauth2_permission_grants:type_name -> draiosproto.ServicePrincipalMetadata.Azure.Oauth2PermissionGrant + 45, // 81: draiosproto.ServicePrincipalMetadata.OracleCloud.api_key:type_name -> draiosproto.ServicePrincipalMetadata.OracleCloud.ApiKey + 49, // 82: draiosproto.WebhookDatasourceMetadata.Okta.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource + 50, // 83: draiosproto.WebhookDatasourceMetadata.Github.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource + 51, // 84: draiosproto.WebhookDatasourceMetadata.Gcp.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Gcp.WebhookDatasource + 36, // 85: draiosproto.WebhookDatasourceMetadata.Gcp.service_principal:type_name -> draiosproto.ServicePrincipalMetadata.GCP + 53, // 86: draiosproto.CryptoKeyMetadata.AWS.kms:type_name -> draiosproto.CryptoKeyMetadata.AWS.KMS + 55, // 87: draiosproto.CloudLogsMetadata.AWS.cloudtrail_s3_bucket:type_name -> draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket + 59, // 88: draiosproto.encryption:extendee -> google.protobuf.FieldOptions + 89, // [89:89] is the sub-list for method output_type + 89, // [89:89] is the sub-list for method input_type + 89, // [89:89] is the sub-list for extension type_name + 88, // [88:89] is the sub-list for extension extendee + 0, // [0:88] is the sub-list for field type_name } func init() { file_cloud_account_proto_init() } @@ -5241,7 +5422,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_GCP_Key); i { + switch v := v.(*ServicePrincipalMetadata_OracleCloud); i { case 0: return &v.state case 1: @@ -5253,7 +5434,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_GCP_WorkloadIdentityFederation); i { + switch v := v.(*ServicePrincipalMetadata_GCP_Key); i { case 0: return &v.state case 1: @@ -5265,7 +5446,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_Okta_OAuthApp); i { + switch v := v.(*ServicePrincipalMetadata_GCP_WorkloadIdentityFederation); i { case 0: return &v.state case 1: @@ -5277,7 +5458,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal); i { + switch v := v.(*ServicePrincipalMetadata_Okta_OAuthApp); i { case 0: return &v.state case 1: @@ -5289,7 +5470,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_Azure_Oauth2PermissionGrant); i { + switch v := v.(*ServicePrincipalMetadata_Azure_ActiveDirectoryServicePrincipal); i { case 0: return &v.state case 1: @@ -5301,7 +5482,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Okta); i { + switch v := v.(*ServicePrincipalMetadata_Azure_Oauth2PermissionGrant); i { case 0: return &v.state case 1: @@ -5313,7 +5494,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Github); i { + switch v := v.(*ServicePrincipalMetadata_OracleCloud_ApiKey); i { case 0: return &v.state case 1: @@ -5325,7 +5506,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Gcp); i { + switch v := v.(*WebhookDatasourceMetadata_Okta); i { case 0: return &v.state case 1: @@ -5337,7 +5518,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Okta_WebhookDatasource); i { + switch v := v.(*WebhookDatasourceMetadata_Github); i { case 0: return &v.state case 1: @@ -5349,7 +5530,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Github_WebhookDatasource); i { + switch v := v.(*WebhookDatasourceMetadata_Gcp); i { case 0: return &v.state case 1: @@ -5361,7 +5542,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Gcp_WebhookDatasource); i { + switch v := v.(*WebhookDatasourceMetadata_Okta_WebhookDatasource); i { case 0: return &v.state case 1: @@ -5373,7 +5554,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CryptoKeyMetadata_AWS); i { + switch v := v.(*WebhookDatasourceMetadata_Github_WebhookDatasource); i { case 0: return &v.state case 1: @@ -5385,7 +5566,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CryptoKeyMetadata_AWS_KMS); i { + switch v := v.(*WebhookDatasourceMetadata_Gcp_WebhookDatasource); i { case 0: return &v.state case 1: @@ -5397,7 +5578,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloudLogsMetadata_AWS); i { + switch v := v.(*CryptoKeyMetadata_AWS); i { case 0: return &v.state case 1: @@ -5409,6 +5590,30 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CryptoKeyMetadata_AWS_KMS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudLogsMetadata_AWS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloudLogsMetadata_AWS_CloudTrailS3Bucket); i { case 0: return &v.state @@ -5451,6 +5656,7 @@ func file_cloud_account_proto_init() { (*ServicePrincipalMetadata_Gcp)(nil), (*ServicePrincipalMetadata_Okta_)(nil), (*ServicePrincipalMetadata_Azure_)(nil), + (*ServicePrincipalMetadata_Oci)(nil), } file_cloud_account_proto_msgTypes[14].OneofWrappers = []interface{}{ (*WebhookDatasourceMetadata_Okta_)(nil), @@ -5469,7 +5675,7 @@ func file_cloud_account_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cloud_account_proto_rawDesc, NumEnums: 8, - NumMessages: 46, + NumMessages: 48, NumExtensions: 1, NumServices: 0, }, diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index eba941c9..56b9f95f 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -156,7 +156,7 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { SchemaCloudProviderType: { Type: schema.TypeString, Required: true, - ValidateFunc: validation.StringInSlice([]string{cloudauth.Provider_PROVIDER_AWS.String(), cloudauth.Provider_PROVIDER_GCP.String(), cloudauth.Provider_PROVIDER_AZURE.String()}, false), + ValidateFunc: validation.StringInSlice([]string{cloudauth.Provider_PROVIDER_AWS.String(), cloudauth.Provider_PROVIDER_GCP.String(), cloudauth.Provider_PROVIDER_AZURE.String(), cloudauth.Provider_PROVIDER_ORACLECLOUD.String()}, false), }, SchemaEnabled: { Type: schema.TypeBool, @@ -591,6 +591,13 @@ func cloudauthAccountToResourceData(data *schema.ResourceData, cloudAccount *v2. } } + if cloudAccount.Provider == cloudauth.Provider_PROVIDER_ORACLECLOUD { + err = data.Set(SchemaCloudProviderTenantId, cloudAccount.ProviderTenantId) + if err != nil { + return err + } + } + if !(cloudAccount.ProviderPartition.String() == cloudauth.ProviderPartition_PROVIDER_PARTITION_UNSPECIFIED.String()) { err = data.Set(SchemaProviderPartition, cloudAccount.ProviderPartition.String()) if err != nil { diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account_test.go b/sysdig/resource_sysdig_secure_cloud_auth_account_test.go index 94409731..4a5b5396 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account_test.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account_test.go @@ -675,3 +675,89 @@ func TestAccAWSSecureCloudAccountConfigPostureAndAgentlessScanning(t *testing.T) }, }) } + +/************* +* Oracle tests +*************/ +func TestAccOracleSecureCloudAccountRoot(t *testing.T) { + rID := func() string { return acctest.RandStringFromCharSet(60, acctest.CharSetAlphaNum) } + tenantID := rID() + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { + if v := os.Getenv("SYSDIG_SECURE_API_TOKEN"); v == "" { + t.Fatal("SYSDIG_SECURE_API_TOKEN must be set for acceptance tests") + } + }, + ProviderFactories: map[string]func() (*schema.Provider, error){ + "sysdig": func() (*schema.Provider, error) { + return sysdig.Provider(), nil + }, + }, + Steps: []resource.TestStep{ + { + Config: secureOracleCloudAuthAccountMinimumConfiguration(tenantID, false), + }, + { + ResourceName: "sysdig_secure_cloud_auth_account.sample", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func TestAccOracleSecureCloudAccountCompartment(t *testing.T) { + rID := func() string { return acctest.RandStringFromCharSet(60, acctest.CharSetAlphaNum) } + tenantID := rID() + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { + if v := os.Getenv("SYSDIG_SECURE_API_TOKEN"); v == "" { + t.Fatal("SYSDIG_SECURE_API_TOKEN must be set for acceptance tests") + } + }, + ProviderFactories: map[string]func() (*schema.Provider, error){ + "sysdig": func() (*schema.Provider, error) { + return sysdig.Provider(), nil + }, + }, + Steps: []resource.TestStep{ + { + Config: secureOracleCloudAuthAccountMinimumConfiguration(tenantID, true), + }, + { + ResourceName: "sysdig_secure_cloud_auth_account.sample", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func secureOracleCloudAuthAccountMinimumConfiguration(tenantID string, compartmentOnboard bool) string { + rID := func() string { return acctest.RandStringFromCharSet(60, acctest.CharSetAlphaNum) } + compartmentID := rID() + if !compartmentOnboard { + compartmentID = tenantID + } + return fmt.Sprintf(` +resource "sysdig_secure_cloud_auth_account" "sample" { + provider_id = "%s" + provider_type = "PROVIDER_ORACLECLOUD" + enabled = true + provider_tenant_id = "%s" + + component { + type = "COMPONENT_SERVICE_PRINCIPAL" + instance = "secure-onboarding" + version = "v0.1.0" + service_principal_metadata = jsonencode({ + oci = { + api_key = { + user_id = "user-id" + } + } + }) + } + }`, fmt.Sprintf("ocid1.tenancy.oc1..%s", compartmentID), fmt.Sprintf("ocid1.tenancy.oc1..%s", tenantID)) + +}