From 4de039b136dd7d2eed4c356d902b167c94b6b4ef Mon Sep 17 00:00:00 2001 From: matteopasa Date: Wed, 26 Feb 2025 15:23:28 +0100 Subject: [PATCH 1/8] add api dest --- .../data_source_sysdig_secure_onboarding.go | 93 +++++++++++++------ ...ta_source_sysdig_secure_onboarding_test.go | 12 +++ sysdig/internal/client/v2/onboarding.go | 8 +- 3 files changed, 82 insertions(+), 31 deletions(-) diff --git a/sysdig/data_source_sysdig_secure_onboarding.go b/sysdig/data_source_sysdig_secure_onboarding.go index 8006e0b68..d383fc380 100644 --- a/sysdig/data_source_sysdig_secure_onboarding.go +++ b/sysdig/data_source_sysdig_secure_onboarding.go @@ -375,45 +375,84 @@ func dataSourceSysdigSecureCloudIngestionAssets() *schema.Resource { // Retrieves the information of a resource form the file and loads it in Terraform func dataSourceSysdigSecureCloudIngestionAssetsRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + var assets map[string]any + var err error + client, err := getSecureOnboardingClient(meta.(SysdigClients)) if err != nil { 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, ok := d.GetOk("cloud_provider") + if !ok { + // GCP case + assets, err = client.GetCloudIngestionAssetsSecure(ctx, "", "", "") + if err != nil { + return diag.FromErr(err) + } + assetsGcp, _ := assets["gcp"].(map[string]interface{}) + err = d.Set("gcp_routing_key", assetsGcp["routingKey"]) + if err != nil { + return diag.FromErr(err) + } + + err = d.Set("gcp_metadata", assetsGcp["metadata"]) + if err != nil { + return diag.FromErr(err) + } + return nil } - assetsAws, _ := assets["aws"].(map[string]interface{}) - assetsGcp, _ := assets["gcp"].(map[string]interface{}) + componentType, ok := d.GetOk("component_type") + if !ok { + // AWS SNS case + assets, err = client.GetCloudIngestionAssetsSecure(ctx, cloudProvider.(string), d.Get("cloud_provider_id").(string), "") + if err != nil { + return diag.FromErr(err) + } + assetsAws, _ := assets["aws"].(map[string]interface{}) - var ingestionURL string - if assetsAws["snsMetadata"] != nil { - ingestionURL = assetsAws["snsMetadata"].(map[string]interface{})["ingestionURL"].(string) - } + var ingestionURL string + if assetsAws["snsMetadata"] != nil { + ingestionURL = assetsAws["snsMetadata"].(map[string]interface{})["ingestionURL"].(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, - }) - if err != nil { - return diag.FromErr(err) - } + 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, + }) + if err != nil { + return diag.FromErr(err) + } + } else { + // AWS Api Destination case + assets, err = client.GetCloudIngestionAssetsSecure(ctx, d.Get("cloud_provider").(string), d.Get("cloud_provider_id").(string), componentType.(string)) + if err != nil { + return diag.FromErr(err) + } - err = d.Set("gcp_routing_key", assetsGcp["routingKey"]) - if err != nil { - return diag.FromErr(err) - } + assetsAws, _ := assets["aws"].(map[string]interface{}) - err = d.Set("gcp_metadata", assetsGcp["metadata"]) - if err != nil { - return diag.FromErr(err) - } + var ingestionURL string + if assetsAws["apiDestMetadata"] != nil { + ingestionURL = assetsAws["apiDestMetadata"].(map[string]interface{})["ingestionURL"].(string) + } + d.SetId("cloudIngestionAssets") + err = d.Set("aws", map[string]interface{}{ + "eventBusARN": assetsAws["eventBusARN"], + "eventBusARNGov": assetsAws["eventBusARNGov"], + "api_dest_routing_key": assetsAws["apiDestRoutingKey"], + "api_dest_routing_url": ingestionURL, + "api_dest_token": assetsAws["apiDestToken"], + }) + if 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..eceea2d14 100644 --- a/sysdig/data_source_sysdig_secure_onboarding_test.go +++ b/sysdig/data_source_sysdig_secure_onboarding_test.go @@ -205,6 +205,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.api_dest_routing_key"), + resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.api_dest_routing_url"), + resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.api_dest_token"), + ), + }, }, }) } 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 } From 798821fb8a54102fe64718c5d0415f10d9f57459 Mon Sep 17 00:00:00 2001 From: matteopasa Date: Fri, 28 Feb 2025 10:01:11 +0100 Subject: [PATCH 2/8] update naming --- sysdig/data_source_sysdig_secure_onboarding.go | 18 ++++++++++-------- ...ata_source_sysdig_secure_onboarding_test.go | 6 +++--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/sysdig/data_source_sysdig_secure_onboarding.go b/sysdig/data_source_sysdig_secure_onboarding.go index d383fc380..80f8a553d 100644 --- a/sysdig/data_source_sysdig_secure_onboarding.go +++ b/sysdig/data_source_sysdig_secure_onboarding.go @@ -428,7 +428,7 @@ func dataSourceSysdigSecureCloudIngestionAssetsRead(ctx context.Context, d *sche return diag.FromErr(err) } } else { - // AWS Api Destination case + // AWS EventBridge case assets, err = client.GetCloudIngestionAssetsSecure(ctx, d.Get("cloud_provider").(string), d.Get("cloud_provider_id").(string), componentType.(string)) if err != nil { return diag.FromErr(err) @@ -437,17 +437,19 @@ func dataSourceSysdigSecureCloudIngestionAssetsRead(ctx context.Context, d *sche assetsAws, _ := assets["aws"].(map[string]interface{}) var ingestionURL string - if assetsAws["apiDestMetadata"] != nil { - ingestionURL = assetsAws["apiDestMetadata"].(map[string]interface{})["ingestionURL"].(string) + var apiKey string + if assetsAws["ebMetadata"] != nil { + ingestionURL = assetsAws["ebMetadata"].(map[string]interface{})["ingestionURL"].(string) + apiKey = assetsAws["ebMetadata"].(map[string]interface{})["apiKey"].(string) } d.SetId("cloudIngestionAssets") err = d.Set("aws", map[string]interface{}{ - "eventBusARN": assetsAws["eventBusARN"], - "eventBusARNGov": assetsAws["eventBusARNGov"], - "api_dest_routing_key": assetsAws["apiDestRoutingKey"], - "api_dest_routing_url": ingestionURL, - "api_dest_token": assetsAws["apiDestToken"], + "eventBusARN": assetsAws["eventBusARN"], + "eventBusARNGov": assetsAws["eventBusARNGov"], + "eb_routing_key": assetsAws["ebRoutingKey"], + "eb_routing_url": ingestionURL, + "eb_api_key": apiKey, }) if err != nil { return diag.FromErr(err) diff --git a/sysdig/data_source_sysdig_secure_onboarding_test.go b/sysdig/data_source_sysdig_secure_onboarding_test.go index eceea2d14..fc9f0eae7 100644 --- a/sysdig/data_source_sysdig_secure_onboarding_test.go +++ b/sysdig/data_source_sysdig_secure_onboarding_test.go @@ -212,9 +212,9 @@ func TestAccCloudIngestionAssetsDataSource(t *testing.T) { component_type = "COMPONENT_WEBHOOK_DATASOURCE" }`, Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.api_dest_routing_key"), - resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.api_dest_routing_url"), - resource.TestCheckResourceAttrSet("data.sysdig_secure_cloud_ingestion_assets.assets", "aws.api_dest_token"), + 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"), ), }, }, From c044b2133e812eeaddab26492239eaebd418f60c Mon Sep 17 00:00:00 2001 From: matteopasa Date: Mon, 3 Mar 2025 10:46:57 +0100 Subject: [PATCH 3/8] change test --- sysdig/data_source_sysdig_secure_onboarding_test.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/sysdig/data_source_sysdig_secure_onboarding_test.go b/sysdig/data_source_sysdig_secure_onboarding_test.go index fc9f0eae7..b651c0ca6 100644 --- a/sysdig/data_source_sysdig_secure_onboarding_test.go +++ b/sysdig/data_source_sysdig_secure_onboarding_test.go @@ -185,9 +185,6 @@ 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"), // metadata fields are opaque to api backend; cloudingestion controls what fields are passed // asserts ingestionType and ingestionURL in metadata since it is required From 0479dc9c0923cb7505e51bc4ec7c6fcd8e93e718 Mon Sep 17 00:00:00 2001 From: matteopasa Date: Mon, 3 Mar 2025 12:34:56 +0100 Subject: [PATCH 4/8] fix setid --- .../data_source_sysdig_secure_onboarding.go | 2 + .../v2/cloudauth/go/cloud_account.pb.go | 660 +++++++++++------- 2 files changed, 418 insertions(+), 244 deletions(-) diff --git a/sysdig/data_source_sysdig_secure_onboarding.go b/sysdig/data_source_sysdig_secure_onboarding.go index 80f8a553d..a1472f61d 100644 --- a/sysdig/data_source_sysdig_secure_onboarding.go +++ b/sysdig/data_source_sysdig_secure_onboarding.go @@ -390,6 +390,8 @@ func dataSourceSysdigSecureCloudIngestionAssetsRead(ctx context.Context, d *sche if err != nil { return diag.FromErr(err) } + + d.SetId("cloudIngestionAssets") assetsGcp, _ := assets["gcp"].(map[string]interface{}) err = d.Set("gcp_routing_key", assetsGcp["routingKey"]) if err != nil { 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..c3e401a4c 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,69 @@ 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"` +} + +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 +} + type CryptoKeyMetadata_AWS struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3948,7 +4072,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 +4085,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 +4120,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 +4133,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 +4175,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 +4188,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 +4234,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 +4247,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 +4322,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 +4335,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 +5022,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, 0x97, 0x0c, 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 +5037,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 +5103,193 @@ 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, - 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, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x1a, 0xf9, + 0x01, 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, 0x84, 0x01, 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, 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, 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, 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, + 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, 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, - 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, - 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, 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, 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, + 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, 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, 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 +5305,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 +5357,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 +5391,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 +5419,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 +5445,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 +5972,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 +5984,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 +5996,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 +6008,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 +6020,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 +6032,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 +6044,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 +6056,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 +6128,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 +6142,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, }, From bd318af957fabb559edbe02a08c7b86fc4c307e0 Mon Sep 17 00:00:00 2001 From: matteopasa Date: Mon, 3 Mar 2025 16:20:35 +0100 Subject: [PATCH 5/8] add optional component type --- sysdig/data_source_sysdig_secure_onboarding.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sysdig/data_source_sysdig_secure_onboarding.go b/sysdig/data_source_sysdig_secure_onboarding.go index a1472f61d..86df21467 100644 --- a/sysdig/data_source_sysdig_secure_onboarding.go +++ b/sysdig/data_source_sysdig_secure_onboarding.go @@ -354,6 +354,10 @@ func dataSourceSysdigSecureCloudIngestionAssets() *schema.Resource { Type: schema.TypeString, Optional: true, }, + "component_type": { + Type: schema.TypeString, + Optional: true, + }, "aws": { Type: schema.TypeMap, Computed: true, From 3e4b825b9dd9c9d2fba3539adcfd2740298f2ce9 Mon Sep 17 00:00:00 2001 From: matteopasa Date: Mon, 3 Mar 2025 16:23:06 +0100 Subject: [PATCH 6/8] add validation --- sysdig/data_source_sysdig_secure_onboarding.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sysdig/data_source_sysdig_secure_onboarding.go b/sysdig/data_source_sysdig_secure_onboarding.go index 86df21467..351bfaa90 100644 --- a/sysdig/data_source_sysdig_secure_onboarding.go +++ b/sysdig/data_source_sysdig_secure_onboarding.go @@ -355,8 +355,9 @@ func dataSourceSysdigSecureCloudIngestionAssets() *schema.Resource { Optional: true, }, "component_type": { - Type: schema.TypeString, - Optional: true, + Type: schema.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice([]string{"COMPONENT_WEBHOOK_DATASOURCE"}, false), }, "aws": { Type: schema.TypeMap, From 72e3f04562046b542f6f20b931123f2c22472ab5 Mon Sep 17 00:00:00 2001 From: matteopasa Date: Fri, 14 Mar 2025 12:08:04 +0100 Subject: [PATCH 7/8] update proto --- .../v2/cloudauth/go/cloud_account.pb.go | 406 ++++++++++-------- 1 file changed, 229 insertions(+), 177 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 c3e401a4c..b8c87d11d 100644 --- a/sysdig/internal/client/v2/cloudauth/go/cloud_account.pb.go +++ b/sysdig/internal/client/v2/cloudauth/go/cloud_account.pb.go @@ -4003,9 +4003,14 @@ type WebhookDatasourceMetadata_AWS_WebhookDatasource struct { 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"` + 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() { @@ -4061,6 +4066,41 @@ func (x *WebhookDatasourceMetadata_AWS_WebhookDatasource) GetIngestedRegions() [ 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 @@ -5022,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, 0x97, 0x0c, 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, @@ -5103,15 +5143,15 @@ 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, 0x1a, 0xf9, - 0x01, 0x0a, 0x03, 0x41, 0x57, 0x53, 0x12, 0x6b, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 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, 0x84, 0x01, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, + 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, @@ -5119,177 +5159,189 @@ var file_cloud_account_proto_rawDesc = []byte{ 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, 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, 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, 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, + 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, 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, 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, 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, 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, + 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, 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, 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, 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 ( From 80ccd5f782841028451816587fd5a238d72be961 Mon Sep 17 00:00:00 2001 From: matteopasa Date: Mon, 24 Mar 2025 11:28:18 +0100 Subject: [PATCH 8/8] remove ifs --- .../data_source_sysdig_secure_onboarding.go | 115 +++++++++--------- ...ta_source_sysdig_secure_onboarding_test.go | 1 + 2 files changed, 57 insertions(+), 59 deletions(-) diff --git a/sysdig/data_source_sysdig_secure_onboarding.go b/sysdig/data_source_sysdig_secure_onboarding.go index 351bfaa90..6d2cc3b9f 100644 --- a/sysdig/data_source_sysdig_secure_onboarding.go +++ b/sysdig/data_source_sysdig_secure_onboarding.go @@ -380,88 +380,85 @@ func dataSourceSysdigSecureCloudIngestionAssets() *schema.Resource { // Retrieves the information of a resource form the file and loads it in Terraform func dataSourceSysdigSecureCloudIngestionAssetsRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - var assets map[string]any - var err error - client, err := getSecureOnboardingClient(meta.(SysdigClients)) if err != nil { return diag.FromErr(err) } - cloudProvider, ok := d.GetOk("cloud_provider") - if !ok { - // GCP case - assets, err = client.GetCloudIngestionAssetsSecure(ctx, "", "", "") - if err != nil { - return diag.FromErr(err) - } + cloudProvider := "" + if v, ok := d.GetOk("cloud_provider"); ok { + cloudProvider = v.(string) + } - d.SetId("cloudIngestionAssets") - assetsGcp, _ := assets["gcp"].(map[string]interface{}) - err = d.Set("gcp_routing_key", assetsGcp["routingKey"]) - if err != nil { - return diag.FromErr(err) + cloudProviderID := "" + if v, ok := d.GetOk("cloud_provider_id"); ok { + cloudProviderID = v.(string) + } + + componentType := "" + if v, ok := d.GetOk("component_type"); ok { + componentType = v.(string) + } + + assets, err := client.GetCloudIngestionAssetsSecure(ctx, cloudProvider, cloudProviderID, componentType) + 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) + } } - err = d.Set("gcp_metadata", assetsGcp["metadata"]) - if 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) + } } - return nil } - componentType, ok := d.GetOk("component_type") - if !ok { - // AWS SNS case - assets, err = client.GetCloudIngestionAssetsSecure(ctx, cloudProvider.(string), d.Get("cloud_provider_id").(string), "") - 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"], } - assetsAws, _ := assets["aws"].(map[string]interface{}) - var ingestionURL string - if assetsAws["snsMetadata"] != nil { - ingestionURL = assetsAws["snsMetadata"].(map[string]interface{})["ingestionURL"].(string) + // Add SNS specific fields if available + if awsAssets["snsRoutingKey"] != nil { + awsData["sns_routing_key"] = awsAssets["snsRoutingKey"] } - 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, - }) - if err != nil { - return diag.FromErr(err) - } - } else { - // AWS EventBridge case - assets, err = client.GetCloudIngestionAssetsSecure(ctx, d.Get("cloud_provider").(string), d.Get("cloud_provider_id").(string), componentType.(string)) - if err != nil { - return diag.FromErr(err) + if snsMetadata, ok := awsAssets["snsMetadata"].(map[string]interface{}); ok && snsMetadata != nil { + if ingestionURL, exists := snsMetadata["ingestionURL"]; exists { + awsData["sns_routing_url"] = ingestionURL + } } - assetsAws, _ := assets["aws"].(map[string]interface{}) + // Add EventBridge specific fields if available + if awsAssets["ebRoutingKey"] != nil { + awsData["eb_routing_key"] = awsAssets["ebRoutingKey"] + } - var ingestionURL string - var apiKey string - if assetsAws["ebMetadata"] != nil { - ingestionURL = assetsAws["ebMetadata"].(map[string]interface{})["ingestionURL"].(string) - apiKey = assetsAws["ebMetadata"].(map[string]interface{})["apiKey"].(string) + 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 + } } - d.SetId("cloudIngestionAssets") - err = d.Set("aws", map[string]interface{}{ - "eventBusARN": assetsAws["eventBusARN"], - "eventBusARNGov": assetsAws["eventBusARNGov"], - "eb_routing_key": assetsAws["ebRoutingKey"], - "eb_routing_url": ingestionURL, - "eb_api_key": apiKey, - }) - if err != nil { + 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 b651c0ca6..aa86ab593 100644 --- a/sysdig/data_source_sysdig_secure_onboarding_test.go +++ b/sysdig/data_source_sysdig_secure_onboarding_test.go @@ -186,6 +186,7 @@ func TestAccCloudIngestionAssetsDataSource(t *testing.T) { Config: `data "sysdig_secure_cloud_ingestion_assets" "assets" {}`, Check: resource.ComposeTestCheckFunc( 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"),