diff --git a/sysdig/data_source_sysdig_secure_onboarding.go b/sysdig/data_source_sysdig_secure_onboarding.go index 8006e0b68..6d2cc3b9f 100644 --- a/sysdig/data_source_sysdig_secure_onboarding.go +++ b/sysdig/data_source_sysdig_secure_onboarding.go @@ -354,6 +354,11 @@ func dataSourceSysdigSecureCloudIngestionAssets() *schema.Resource { Type: schema.TypeString, Optional: true, }, + "component_type": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice([]string{"COMPONENT_WEBHOOK_DATASOURCE"}, false), + }, "aws": { Type: schema.TypeMap, Computed: true, @@ -380,38 +385,78 @@ func dataSourceSysdigSecureCloudIngestionAssetsRead(ctx context.Context, d *sche return diag.FromErr(err) } - assets, err := client.GetCloudIngestionAssetsSecure(ctx, d.Get("cloud_provider").(string), d.Get("cloud_provider_id").(string)) - if err != nil { - return diag.FromErr(err) + cloudProvider := "" + if v, ok := d.GetOk("cloud_provider"); ok { + cloudProvider = v.(string) } - assetsAws, _ := assets["aws"].(map[string]interface{}) - assetsGcp, _ := assets["gcp"].(map[string]interface{}) + cloudProviderID := "" + if v, ok := d.GetOk("cloud_provider_id"); ok { + cloudProviderID = v.(string) + } - var ingestionURL string - if assetsAws["snsMetadata"] != nil { - ingestionURL = assetsAws["snsMetadata"].(map[string]interface{})["ingestionURL"].(string) + componentType := "" + if v, ok := d.GetOk("component_type"); ok { + componentType = v.(string) } - d.SetId("cloudIngestionAssets") - err = d.Set("aws", map[string]interface{}{ - "eventBusARN": assetsAws["eventBusARN"], - "eventBusARNGov": assetsAws["eventBusARNGov"], - "sns_routing_key": assetsAws["snsRoutingKey"], - "sns_routing_url": ingestionURL, - }) + assets, err := client.GetCloudIngestionAssetsSecure(ctx, cloudProvider, cloudProviderID, componentType) if err != nil { return diag.FromErr(err) } - err = d.Set("gcp_routing_key", assetsGcp["routingKey"]) - if err != nil { - return diag.FromErr(err) + d.SetId("cloudIngestionAssets") + + // Set GCP data if available + if gcpAssets, ok := assets["gcp"].(map[string]interface{}); ok { + if routingKey, exists := gcpAssets["routingKey"]; exists { + if err := d.Set("gcp_routing_key", routingKey); err != nil { + return diag.FromErr(err) + } + } + + if metadata, exists := gcpAssets["metadata"]; exists { + if err := d.Set("gcp_metadata", metadata); err != nil { + return diag.FromErr(err) + } + } } - err = d.Set("gcp_metadata", assetsGcp["metadata"]) - if err != nil { - return diag.FromErr(err) + // Set AWS data if available + if awsAssets, ok := assets["aws"].(map[string]interface{}); ok { + awsData := map[string]interface{}{ + "eventBusARN": awsAssets["eventBusARN"], + "eventBusARNGov": awsAssets["eventBusARNGov"], + } + + // Add SNS specific fields if available + if awsAssets["snsRoutingKey"] != nil { + awsData["sns_routing_key"] = awsAssets["snsRoutingKey"] + } + + if snsMetadata, ok := awsAssets["snsMetadata"].(map[string]interface{}); ok && snsMetadata != nil { + if ingestionURL, exists := snsMetadata["ingestionURL"]; exists { + awsData["sns_routing_url"] = ingestionURL + } + } + + // Add EventBridge specific fields if available + if awsAssets["ebRoutingKey"] != nil { + awsData["eb_routing_key"] = awsAssets["ebRoutingKey"] + } + + if ebMetadata, ok := awsAssets["ebMetadata"].(map[string]interface{}); ok && ebMetadata != nil { + if ingestionURL, exists := ebMetadata["ingestionURL"]; exists { + awsData["eb_routing_url"] = ingestionURL + } + if apiKey, exists := ebMetadata["apiKey"]; exists { + awsData["eb_api_key"] = apiKey + } + } + + if err := d.Set("aws", awsData); err != nil { + return diag.FromErr(err) + } } return nil diff --git a/sysdig/data_source_sysdig_secure_onboarding_test.go b/sysdig/data_source_sysdig_secure_onboarding_test.go index 93a0817d0..aa86ab593 100644 --- a/sysdig/data_source_sysdig_secure_onboarding_test.go +++ b/sysdig/data_source_sysdig_secure_onboarding_test.go @@ -185,10 +185,8 @@ func TestAccCloudIngestionAssetsDataSource(t *testing.T) { { Config: `data "sysdig_secure_cloud_ingestion_assets" "assets" {}`, Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.%", "4"), - // not asserting the gov exported fields because not every backend environment is gov supported and thus will have empty values - resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "gcp_routing_key"), + resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.eventBusARN"), // metadata fields are opaque to api backend; cloudingestion controls what fields are passed // asserts ingestionType and ingestionURL in metadata since it is required resource.TestCheckResourceAttr("data.sysdig_secure_cloud_ingestion_assets.assets", "gcp_metadata.ingestionType", "gcp"), @@ -205,6 +203,18 @@ func TestAccCloudIngestionAssetsDataSource(t *testing.T) { resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.sns_routing_url"), ), }, + { + Config: `data "sysdig_secure_cloud_ingestion_assets" "assets" { + cloud_provider = "aws" + cloud_provider_id = "012345678901" + component_type = "COMPONENT_WEBHOOK_DATASOURCE" + }`, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.eb_routing_key"), + resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.eb_routing_url"), + resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.eb_api_key"), + ), + }, }, }) } 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 fa00890fb..b8c87d11d 100644 --- a/sysdig/internal/client/v2/cloudauth/go/cloud_account.pb.go +++ b/sysdig/internal/client/v2/cloudauth/go/cloud_account.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 -// protoc v5.29.0 +// protoc v5.26.1 // source: cloud_account.proto package draiosproto @@ -2040,6 +2040,7 @@ type WebhookDatasourceMetadata struct { // *WebhookDatasourceMetadata_Okta_ // *WebhookDatasourceMetadata_Github_ // *WebhookDatasourceMetadata_Gcp_ + // *WebhookDatasourceMetadata_Aws Provider isWebhookDatasourceMetadata_Provider `protobuf_oneof:"provider"` } @@ -2103,6 +2104,13 @@ func (x *WebhookDatasourceMetadata) GetGcp() *WebhookDatasourceMetadata_Gcp { return nil } +func (x *WebhookDatasourceMetadata) GetAws() *WebhookDatasourceMetadata_AWS { + if x, ok := x.GetProvider().(*WebhookDatasourceMetadata_Aws); ok { + return x.Aws + } + return nil +} + type isWebhookDatasourceMetadata_Provider interface { isWebhookDatasourceMetadata_Provider() } @@ -2119,12 +2127,18 @@ type WebhookDatasourceMetadata_Gcp_ struct { Gcp *WebhookDatasourceMetadata_Gcp `protobuf:"bytes,3,opt,name=gcp,proto3,oneof"` } +type WebhookDatasourceMetadata_Aws struct { + Aws *WebhookDatasourceMetadata_AWS `protobuf:"bytes,4,opt,name=aws,proto3,oneof"` +} + func (*WebhookDatasourceMetadata_Okta_) isWebhookDatasourceMetadata_Provider() {} func (*WebhookDatasourceMetadata_Github_) isWebhookDatasourceMetadata_Provider() {} func (*WebhookDatasourceMetadata_Gcp_) isWebhookDatasourceMetadata_Provider() {} +func (*WebhookDatasourceMetadata_Aws) isWebhookDatasourceMetadata_Provider() {} + // CryptoKeyMetadata captures the metadata associated with a KMS Key type CryptoKeyMetadata struct { state protoimpl.MessageState @@ -3716,6 +3730,53 @@ func (x *WebhookDatasourceMetadata_Gcp) GetServicePrincipal() *ServicePrincipalM return nil } +type WebhookDatasourceMetadata_AWS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebhookDatasource *WebhookDatasourceMetadata_AWS_WebhookDatasource `protobuf:"bytes,1,opt,name=webhook_datasource,json=webhookDatasource,proto3" json:"webhook_datasource,omitempty"` +} + +func (x *WebhookDatasourceMetadata_AWS) Reset() { + *x = WebhookDatasourceMetadata_AWS{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookDatasourceMetadata_AWS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookDatasourceMetadata_AWS) ProtoMessage() {} + +func (x *WebhookDatasourceMetadata_AWS) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[42] + 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 WebhookDatasourceMetadata_AWS.ProtoReflect.Descriptor instead. +func (*WebhookDatasourceMetadata_AWS) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{14, 3} +} + +func (x *WebhookDatasourceMetadata_AWS) GetWebhookDatasource() *WebhookDatasourceMetadata_AWS_WebhookDatasource { + if x != nil { + return x.WebhookDatasource + } + return nil +} + type WebhookDatasourceMetadata_Okta_WebhookDatasource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3730,7 +3791,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[42] + mi := &file_cloud_account_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3743,7 +3804,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[42] + mi := &file_cloud_account_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3801,7 +3862,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[43] + mi := &file_cloud_account_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3814,7 +3875,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[43] + mi := &file_cloud_account_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3873,7 +3934,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[44] + mi := &file_cloud_account_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3886,7 +3947,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[44] + mi := &file_cloud_account_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3937,6 +3998,109 @@ func (x *WebhookDatasourceMetadata_Gcp_WebhookDatasource) GetRoutingKey() string return "" } +type WebhookDatasourceMetadata_AWS_WebhookDatasource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoutingKey string `protobuf:"bytes,1,opt,name=routing_key,json=routingKey,proto3" json:"routing_key,omitempty"` + IngestionUrl string `protobuf:"bytes,2,opt,name=ingestion_url,json=ingestionUrl,proto3" json:"ingestion_url,omitempty"` + IngestedRegions []string `protobuf:"bytes,3,rep,name=ingested_regions,json=ingestedRegions,proto3" json:"ingested_regions,omitempty"` + RuleName string `protobuf:"bytes,4,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` + ApiDestName string `protobuf:"bytes,5,opt,name=api_dest_name,json=apiDestName,proto3" json:"api_dest_name,omitempty"` + ApiDestRateLimit string `protobuf:"bytes,6,opt,name=api_dest_rate_limit,json=apiDestRateLimit,proto3" json:"api_dest_rate_limit,omitempty"` + RoleName string `protobuf:"bytes,7,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + ConnectionName string `protobuf:"bytes,8,opt,name=connection_name,json=connectionName,proto3" json:"connection_name,omitempty"` +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) Reset() { + *x = WebhookDatasourceMetadata_AWS_WebhookDatasource{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookDatasourceMetadata_AWS_WebhookDatasource) ProtoMessage() {} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[46] + 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 WebhookDatasourceMetadata_AWS_WebhookDatasource.ProtoReflect.Descriptor instead. +func (*WebhookDatasourceMetadata_AWS_WebhookDatasource) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{14, 3, 0} +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetRoutingKey() string { + if x != nil { + return x.RoutingKey + } + return "" +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetIngestionUrl() string { + if x != nil { + return x.IngestionUrl + } + return "" +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetIngestedRegions() []string { + if x != nil { + return x.IngestedRegions + } + return nil +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetRuleName() string { + if x != nil { + return x.RuleName + } + return "" +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetApiDestName() string { + if x != nil { + return x.ApiDestName + } + return "" +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetApiDestRateLimit() string { + if x != nil { + return x.ApiDestRateLimit + } + return "" +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetConnectionName() string { + if x != nil { + return x.ConnectionName + } + return "" +} + type CryptoKeyMetadata_AWS struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3948,7 +4112,7 @@ type CryptoKeyMetadata_AWS struct { func (x *CryptoKeyMetadata_AWS) Reset() { *x = CryptoKeyMetadata_AWS{} 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) } @@ -3961,7 +4125,7 @@ func (x *CryptoKeyMetadata_AWS) String() string { func (*CryptoKeyMetadata_AWS) ProtoMessage() {} func (x *CryptoKeyMetadata_AWS) 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 { @@ -3996,7 +4160,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[46] + mi := &file_cloud_account_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4009,7 +4173,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[46] + mi := &file_cloud_account_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4051,7 +4215,7 @@ type CloudLogsMetadata_AWS struct { func (x *CloudLogsMetadata_AWS) Reset() { *x = CloudLogsMetadata_AWS{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[47] + mi := &file_cloud_account_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4064,7 +4228,7 @@ func (x *CloudLogsMetadata_AWS) String() string { func (*CloudLogsMetadata_AWS) ProtoMessage() {} func (x *CloudLogsMetadata_AWS) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[47] + mi := &file_cloud_account_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4110,7 +4274,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[48] + mi := &file_cloud_account_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4123,7 +4287,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[48] + mi := &file_cloud_account_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4198,7 +4362,7 @@ type CloudLogsMetadata_AWS_CloudTrailSNS struct { func (x *CloudLogsMetadata_AWS_CloudTrailSNS) Reset() { *x = CloudLogsMetadata_AWS_CloudTrailSNS{} if protoimpl.UnsafeEnabled { - mi := &file_cloud_account_proto_msgTypes[49] + mi := &file_cloud_account_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4211,7 +4375,7 @@ func (x *CloudLogsMetadata_AWS_CloudTrailSNS) String() string { func (*CloudLogsMetadata_AWS_CloudTrailSNS) ProtoMessage() {} func (x *CloudLogsMetadata_AWS_CloudTrailSNS) ProtoReflect() protoreflect.Message { - mi := &file_cloud_account_proto_msgTypes[49] + mi := &file_cloud_account_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4898,7 +5062,7 @@ var file_cloud_account_proto_rawDesc = []byte{ 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x25, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, - 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xdb, 0x09, 0x0a, + 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xcd, 0x0d, 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, @@ -4913,7 +5077,11 @@ var file_cloud_account_proto_rawDesc = []byte{ 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, + 0x00, 0x52, 0x03, 0x67, 0x63, 0x70, 0x12, 0x3e, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x04, 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, 0x41, 0x57, 0x53, 0x48, + 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 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, @@ -4975,178 +5143,205 @@ var file_cloud_account_proto_rawDesc = []byte{ 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, 0x80, 0x06, 0x0a, - 0x11, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x1a, 0xaf, + 0x03, 0x0a, 0x03, 0x41, 0x57, 0x53, 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, 0x41, 0x57, 0x53, 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, 0xba, 0x02, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, + 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, + 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x70, 0x69, 0x5f, 0x64, + 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x70, 0x69, 0x44, 0x65, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x61, + 0x70, 0x69, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x70, 0x69, 0x44, 0x65, 0x73, + 0x74, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, + 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 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, 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, 0xa6, 0x05, 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, 0x12, 0x57, 0x0a, 0x0e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x73, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x30, 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, 0x4e, 0x53, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, - 0x6c, 0x53, 0x6e, 0x73, 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, 0x1a, 0x84, 0x02, 0x0a, - 0x0d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x53, 0x4e, 0x53, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x72, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x72, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x41, 0x72, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x67, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x07, 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, 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, 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, 0x43, 0x4f, 0x4e, - 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x53, 0x10, 0x07, 0x12, 0x2e, 0x0a, 0x2a, 0x46, 0x45, 0x41, + 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, 0x80, + 0x06, 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, 0xa6, 0x05, 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, 0x12, 0x57, 0x0a, + 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x73, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 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, 0x4e, 0x53, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, + 0x61, 0x69, 0x6c, 0x53, 0x6e, 0x73, 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, 0x1a, 0x84, + 0x02, 0x0a, 0x0d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x53, 0x4e, 0x53, + 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x72, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x72, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x72, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x72, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x07, 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, 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, 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, + 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, 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, 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, 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, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, + 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, 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, 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, + 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, - 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, + 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, 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 ( @@ -5162,7 +5357,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, 50) +var file_cloud_account_proto_msgTypes = make([]protoimpl.MessageInfo, 52) var file_cloud_account_proto_goTypes = []any{ (Provider)(0), // 0: draiosproto.Provider (Feature)(0), // 1: draiosproto.Feature @@ -5214,24 +5409,26 @@ var file_cloud_account_proto_goTypes = []any{ (*WebhookDatasourceMetadata_Okta)(nil), // 47: draiosproto.WebhookDatasourceMetadata.Okta (*WebhookDatasourceMetadata_Github)(nil), // 48: draiosproto.WebhookDatasourceMetadata.Github (*WebhookDatasourceMetadata_Gcp)(nil), // 49: draiosproto.WebhookDatasourceMetadata.Gcp - (*WebhookDatasourceMetadata_Okta_WebhookDatasource)(nil), // 50: draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource - (*WebhookDatasourceMetadata_Github_WebhookDatasource)(nil), // 51: draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource - (*WebhookDatasourceMetadata_Gcp_WebhookDatasource)(nil), // 52: draiosproto.WebhookDatasourceMetadata.Gcp.WebhookDatasource - (*CryptoKeyMetadata_AWS)(nil), // 53: draiosproto.CryptoKeyMetadata.AWS - (*CryptoKeyMetadata_AWS_KMS)(nil), // 54: draiosproto.CryptoKeyMetadata.AWS.KMS - (*CloudLogsMetadata_AWS)(nil), // 55: draiosproto.CloudLogsMetadata.AWS - (*CloudLogsMetadata_AWS_CloudTrailS3Bucket)(nil), // 56: draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket - (*CloudLogsMetadata_AWS_CloudTrailSNS)(nil), // 57: draiosproto.CloudLogsMetadata.AWS.CloudTrailSNS - (*timestamppb.Timestamp)(nil), // 58: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 59: google.protobuf.Duration - (*structpb.Value)(nil), // 60: google.protobuf.Value - (*descriptorpb.FieldOptions)(nil), // 61: google.protobuf.FieldOptions + (*WebhookDatasourceMetadata_AWS)(nil), // 50: draiosproto.WebhookDatasourceMetadata.AWS + (*WebhookDatasourceMetadata_Okta_WebhookDatasource)(nil), // 51: draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource + (*WebhookDatasourceMetadata_Github_WebhookDatasource)(nil), // 52: draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource + (*WebhookDatasourceMetadata_Gcp_WebhookDatasource)(nil), // 53: draiosproto.WebhookDatasourceMetadata.Gcp.WebhookDatasource + (*WebhookDatasourceMetadata_AWS_WebhookDatasource)(nil), // 54: draiosproto.WebhookDatasourceMetadata.AWS.WebhookDatasource + (*CryptoKeyMetadata_AWS)(nil), // 55: draiosproto.CryptoKeyMetadata.AWS + (*CryptoKeyMetadata_AWS_KMS)(nil), // 56: draiosproto.CryptoKeyMetadata.AWS.KMS + (*CloudLogsMetadata_AWS)(nil), // 57: draiosproto.CloudLogsMetadata.AWS + (*CloudLogsMetadata_AWS_CloudTrailS3Bucket)(nil), // 58: draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket + (*CloudLogsMetadata_AWS_CloudTrailSNS)(nil), // 59: draiosproto.CloudLogsMetadata.AWS.CloudTrailSNS + (*timestamppb.Timestamp)(nil), // 60: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 61: google.protobuf.Duration + (*structpb.Value)(nil), // 62: google.protobuf.Value + (*descriptorpb.FieldOptions)(nil), // 63: 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 - 58, // 2: draiosproto.CloudAccount.created_at:type_name -> google.protobuf.Timestamp - 58, // 3: draiosproto.CloudAccount.updated_at:type_name -> google.protobuf.Timestamp + 60, // 2: draiosproto.CloudAccount.created_at:type_name -> google.protobuf.Timestamp + 60, // 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 @@ -5246,22 +5443,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 - 58, // 18: draiosproto.AccountFeature.created_at:type_name -> google.protobuf.Timestamp + 60, // 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 - 59, // 21: draiosproto.ValidationStep.duration:type_name -> google.protobuf.Duration + 61, // 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 - 60, // 25: draiosproto.ValidationError.detail:type_name -> google.protobuf.Value - 60, // 26: draiosproto.ValidationWarning.detail:type_name -> google.protobuf.Value + 62, // 25: draiosproto.ValidationError.detail:type_name -> google.protobuf.Value + 62, // 26: draiosproto.ValidationWarning.detail:type_name -> google.protobuf.Value 5, // 27: draiosproto.Validation.result:type_name -> draiosproto.ValidationResult - 58, // 28: draiosproto.Validation.timestamp:type_name -> google.protobuf.Timestamp + 60, // 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 - 58, // 32: draiosproto.CloudOrganization.created_at:type_name -> google.protobuf.Timestamp - 58, // 33: draiosproto.CloudOrganization.updated_at:type_name -> google.protobuf.Timestamp + 60, // 32: draiosproto.CloudOrganization.created_at:type_name -> google.protobuf.Timestamp + 60, // 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 @@ -5274,8 +5471,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 - 58, // 46: draiosproto.AccountComponent.created_at:type_name -> google.protobuf.Timestamp - 58, // 47: draiosproto.AccountComponent.updated_at:type_name -> google.protobuf.Timestamp + 60, // 46: draiosproto.AccountComponent.created_at:type_name -> google.protobuf.Timestamp + 60, // 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 @@ -5300,30 +5497,32 @@ var file_cloud_account_proto_depIdxs = []int32{ 47, // 69: draiosproto.WebhookDatasourceMetadata.okta:type_name -> draiosproto.WebhookDatasourceMetadata.Okta 48, // 70: draiosproto.WebhookDatasourceMetadata.github:type_name -> draiosproto.WebhookDatasourceMetadata.Github 49, // 71: draiosproto.WebhookDatasourceMetadata.gcp:type_name -> draiosproto.WebhookDatasourceMetadata.Gcp - 53, // 72: draiosproto.CryptoKeyMetadata.aws:type_name -> draiosproto.CryptoKeyMetadata.AWS - 55, // 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 - 46, // 82: draiosproto.ServicePrincipalMetadata.OracleCloud.policy:type_name -> draiosproto.ServicePrincipalMetadata.OracleCloud.Policy - 50, // 83: draiosproto.WebhookDatasourceMetadata.Okta.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource - 51, // 84: draiosproto.WebhookDatasourceMetadata.Github.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource - 52, // 85: draiosproto.WebhookDatasourceMetadata.Gcp.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Gcp.WebhookDatasource - 36, // 86: draiosproto.WebhookDatasourceMetadata.Gcp.service_principal:type_name -> draiosproto.ServicePrincipalMetadata.GCP - 54, // 87: draiosproto.CryptoKeyMetadata.AWS.kms:type_name -> draiosproto.CryptoKeyMetadata.AWS.KMS - 56, // 88: draiosproto.CloudLogsMetadata.AWS.cloudtrail_s3_bucket:type_name -> draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket - 57, // 89: draiosproto.CloudLogsMetadata.AWS.cloudtrail_sns:type_name -> draiosproto.CloudLogsMetadata.AWS.CloudTrailSNS - 61, // 90: draiosproto.encryption:extendee -> google.protobuf.FieldOptions - 91, // [91:91] is the sub-list for method output_type - 91, // [91:91] is the sub-list for method input_type - 91, // [91:91] is the sub-list for extension type_name - 90, // [90:91] is the sub-list for extension extendee - 0, // [0:90] is the sub-list for field type_name + 50, // 72: draiosproto.WebhookDatasourceMetadata.aws:type_name -> draiosproto.WebhookDatasourceMetadata.AWS + 55, // 73: draiosproto.CryptoKeyMetadata.aws:type_name -> draiosproto.CryptoKeyMetadata.AWS + 57, // 74: draiosproto.CloudLogsMetadata.aws:type_name -> draiosproto.CloudLogsMetadata.AWS + 35, // 75: draiosproto.EventBridgeMetadata.Azure.event_hub_metadata:type_name -> draiosproto.EventBridgeMetadata.Azure.EventHubMetadata + 38, // 76: draiosproto.EventBridgeMetadata.Azure.service_principal:type_name -> draiosproto.ServicePrincipalMetadata.Azure + 40, // 77: draiosproto.ServicePrincipalMetadata.GCP.key:type_name -> draiosproto.ServicePrincipalMetadata.GCP.Key + 41, // 78: draiosproto.ServicePrincipalMetadata.GCP.workload_identity_federation:type_name -> draiosproto.ServicePrincipalMetadata.GCP.WorkloadIdentityFederation + 42, // 79: draiosproto.ServicePrincipalMetadata.Okta.oauth_app:type_name -> draiosproto.ServicePrincipalMetadata.Okta.OAuthApp + 43, // 80: draiosproto.ServicePrincipalMetadata.Azure.active_directory_service_principal:type_name -> draiosproto.ServicePrincipalMetadata.Azure.ActiveDirectoryServicePrincipal + 44, // 81: draiosproto.ServicePrincipalMetadata.Azure.oauth2_permission_grants:type_name -> draiosproto.ServicePrincipalMetadata.Azure.Oauth2PermissionGrant + 45, // 82: draiosproto.ServicePrincipalMetadata.OracleCloud.api_key:type_name -> draiosproto.ServicePrincipalMetadata.OracleCloud.ApiKey + 46, // 83: draiosproto.ServicePrincipalMetadata.OracleCloud.policy:type_name -> draiosproto.ServicePrincipalMetadata.OracleCloud.Policy + 51, // 84: draiosproto.WebhookDatasourceMetadata.Okta.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource + 52, // 85: draiosproto.WebhookDatasourceMetadata.Github.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource + 53, // 86: draiosproto.WebhookDatasourceMetadata.Gcp.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Gcp.WebhookDatasource + 36, // 87: draiosproto.WebhookDatasourceMetadata.Gcp.service_principal:type_name -> draiosproto.ServicePrincipalMetadata.GCP + 54, // 88: draiosproto.WebhookDatasourceMetadata.AWS.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.AWS.WebhookDatasource + 56, // 89: draiosproto.CryptoKeyMetadata.AWS.kms:type_name -> draiosproto.CryptoKeyMetadata.AWS.KMS + 58, // 90: draiosproto.CloudLogsMetadata.AWS.cloudtrail_s3_bucket:type_name -> draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket + 59, // 91: draiosproto.CloudLogsMetadata.AWS.cloudtrail_sns:type_name -> draiosproto.CloudLogsMetadata.AWS.CloudTrailSNS + 63, // 92: draiosproto.encryption:extendee -> google.protobuf.FieldOptions + 93, // [93:93] is the sub-list for method output_type + 93, // [93:93] is the sub-list for method input_type + 93, // [93:93] is the sub-list for extension type_name + 92, // [92:93] is the sub-list for extension extendee + 0, // [0:92] is the sub-list for field type_name } func init() { file_cloud_account_proto_init() } @@ -5825,7 +6024,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*WebhookDatasourceMetadata_Okta_WebhookDatasource); i { + switch v := v.(*WebhookDatasourceMetadata_AWS); i { case 0: return &v.state case 1: @@ -5837,7 +6036,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*WebhookDatasourceMetadata_Github_WebhookDatasource); i { + switch v := v.(*WebhookDatasourceMetadata_Okta_WebhookDatasource); i { case 0: return &v.state case 1: @@ -5849,7 +6048,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*WebhookDatasourceMetadata_Gcp_WebhookDatasource); i { + switch v := v.(*WebhookDatasourceMetadata_Github_WebhookDatasource); i { case 0: return &v.state case 1: @@ -5861,7 +6060,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*CryptoKeyMetadata_AWS); i { + switch v := v.(*WebhookDatasourceMetadata_Gcp_WebhookDatasource); i { case 0: return &v.state case 1: @@ -5873,7 +6072,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*CryptoKeyMetadata_AWS_KMS); i { + switch v := v.(*WebhookDatasourceMetadata_AWS_WebhookDatasource); i { case 0: return &v.state case 1: @@ -5885,7 +6084,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*CloudLogsMetadata_AWS); i { + switch v := v.(*CryptoKeyMetadata_AWS); i { case 0: return &v.state case 1: @@ -5897,7 +6096,7 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*CloudLogsMetadata_AWS_CloudTrailS3Bucket); i { + switch v := v.(*CryptoKeyMetadata_AWS_KMS); i { case 0: return &v.state case 1: @@ -5909,6 +6108,30 @@ func file_cloud_account_proto_init() { } } file_cloud_account_proto_msgTypes[49].Exporter = func(v any, i int) any { + 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[50].Exporter = func(v any, i int) any { + switch v := v.(*CloudLogsMetadata_AWS_CloudTrailS3Bucket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[51].Exporter = func(v any, i int) any { switch v := v.(*CloudLogsMetadata_AWS_CloudTrailSNS); i { case 0: return &v.state @@ -5957,6 +6180,7 @@ func file_cloud_account_proto_init() { (*WebhookDatasourceMetadata_Okta_)(nil), (*WebhookDatasourceMetadata_Github_)(nil), (*WebhookDatasourceMetadata_Gcp_)(nil), + (*WebhookDatasourceMetadata_Aws)(nil), } file_cloud_account_proto_msgTypes[15].OneofWrappers = []any{ (*CryptoKeyMetadata_Aws)(nil), @@ -5970,7 +6194,7 @@ func file_cloud_account_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cloud_account_proto_rawDesc, NumEnums: 8, - NumMessages: 50, + NumMessages: 52, NumExtensions: 1, NumServices: 0, }, diff --git a/sysdig/internal/client/v2/onboarding.go b/sysdig/internal/client/v2/onboarding.go index 6f8ce2ff8..c56f39f39 100644 --- a/sysdig/internal/client/v2/onboarding.go +++ b/sysdig/internal/client/v2/onboarding.go @@ -11,7 +11,7 @@ const ( onboardingTrustedAzureAppPath = "%s/api/secure/onboarding/v2/trustedAzureApp?app=%s" onboardingTenantExternaIDPath = "%s/api/secure/onboarding/v2/externalID" onboardingAgentlessScanningAssetsPath = "%s/api/secure/onboarding/v2/agentlessScanningAssets" - onboardingCloudIngestionAssetsPath = "%s/api/secure/onboarding/v2/cloudIngestionAssets?provider=%s&providerID=%s" + onboardingCloudIngestionAssetsPath = "%s/api/secure/onboarding/v2/cloudIngestionAssets?provider=%s&providerID=%s&componentType=%s" onboardingTrustedRegulationAssetsPath = "%s/api/secure/onboarding/v2/trustedRegulationAssets?provider=%s" onboardingTrustedOracleAppPath = "%s/api/secure/onboarding/v2/trustedOracleApp?app=%s" ) @@ -22,7 +22,7 @@ type OnboardingSecureInterface interface { GetTrustedAzureAppSecure(ctx context.Context, app string) (map[string]string, error) GetTenantExternalIDSecure(ctx context.Context) (string, error) GetAgentlessScanningAssetsSecure(ctx context.Context) (map[string]any, error) - GetCloudIngestionAssetsSecure(ctx context.Context, provider, providerID string) (map[string]any, error) + GetCloudIngestionAssetsSecure(ctx context.Context, provider, providerID, componentType string) (map[string]any, error) GetTrustedCloudRegulationAssetsSecure(ctx context.Context, provider string) (map[string]string, error) GetTrustedOracleAppSecure(ctx context.Context, app string) (map[string]string, error) } @@ -83,8 +83,8 @@ func (client *Client) GetAgentlessScanningAssetsSecure(ctx context.Context) (map return Unmarshal[map[string]interface{}](response.Body) } -func (client *Client) GetCloudIngestionAssetsSecure(ctx context.Context, provider, providerID string) (map[string]interface{}, error) { - response, err := client.requester.Request(ctx, http.MethodGet, fmt.Sprintf(onboardingCloudIngestionAssetsPath, client.config.url, provider, providerID), nil) +func (client *Client) GetCloudIngestionAssetsSecure(ctx context.Context, provider, providerID, componentType string) (map[string]interface{}, error) { + response, err := client.requester.Request(ctx, http.MethodGet, fmt.Sprintf(onboardingCloudIngestionAssetsPath, client.config.url, provider, providerID, componentType), nil) if err != nil { return nil, err }