From 704bb43020cb548f4230389d7017bcd554f1cb06 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Tue, 12 Sep 2023 12:23:02 -0700 Subject: [PATCH 01/15] Add components to schema --- sysdig/resource_sysdig_secure_cloud_auth_account.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index b6bd2cf24..2b8691def 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -48,6 +48,10 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { Type: schema.TypeBool, Required: true, }, + "components": { + Type: schema.TypeList, + Required: true, + }, }, } } From ad1bc4e171bcc98f486bc24971d4a6a8269f9478 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Tue, 12 Sep 2023 14:00:07 -0700 Subject: [PATCH 02/15] Test component type --- sysdig/internal/client/v2/model.go | 4 ++++ sysdig/resource_sysdig_secure_cloud_auth_account.go | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/sysdig/internal/client/v2/model.go b/sysdig/internal/client/v2/model.go index e0c33f263..21534c6a5 100644 --- a/sysdig/internal/client/v2/model.go +++ b/sysdig/internal/client/v2/model.go @@ -420,6 +420,10 @@ type CloudauthAccountSecure struct { cloudauth.CloudAccount } +type CloudauthAccountComponent struct { + cloudauth.AccountComponent +} + type ScanningPolicy struct { ID string `json:"id,omitempty"` Version string `json:"version,omitempty"` diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 2b8691def..eedcacd30 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -49,8 +49,11 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { Required: true, }, "components": { - Type: schema.TypeList, + Type: schema.TypeList, Required: true, + Elem: &schema.Schema{ + Type: v2.CloudauthAccountComponent, + }, }, }, } From a2ef1105b5ff385f679382c3e661a982f052a20a Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Wed, 13 Sep 2023 16:17:56 -0700 Subject: [PATCH 03/15] Add components to schema --- sysdig/internal/client/v2/model.go | 4 -- ...source_sysdig_secure_cloud_auth_account.go | 49 ++++++++++++++++++- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/sysdig/internal/client/v2/model.go b/sysdig/internal/client/v2/model.go index 21534c6a5..e0c33f263 100644 --- a/sysdig/internal/client/v2/model.go +++ b/sysdig/internal/client/v2/model.go @@ -420,10 +420,6 @@ type CloudauthAccountSecure struct { cloudauth.CloudAccount } -type CloudauthAccountComponent struct { - cloudauth.AccountComponent -} - type ScanningPolicy struct { ID string `json:"id,omitempty"` Version string `json:"version,omitempty"` diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index eedcacd30..91113aefd 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -51,8 +51,45 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { "components": { Type: schema.TypeList, Required: true, - Elem: &schema.Schema{ - Type: v2.CloudauthAccountComponent, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": { + Type: schema.TypeString, + Required: true, + }, + "instance": { + Type: schema.TypeString, + Required: true, + }, + "cloudConnectorMetadata": { + Type: schema.TypeString, + Optional: true, + }, + "trustedRoleMetadata": { + Type: schema.TypeString, + Optional: true, + }, + "eventBridgeMetadata": { + Type: schema.TypeString, + Optional: true, + }, + "servicePrincipalMetadata": { + Type: schema.TypeString, + Optional: true, + }, + "webhookDatasourceMetadata": { + Type: schema.TypeString, + Optional: true, + }, + "cryptoKeyMetadata": { + Type: schema.TypeString, + Optional: true, + }, + "cloudLogsMetadata": { + Type: schema.TypeString, + Optional: true, + }, + }, }, }, }, @@ -148,6 +185,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc Enabled: data.Get("enabled").(bool), ProviderId: data.Get("cloud_provider_id").(string), Provider: cloudauth.Provider(cloudauth.Provider_value[data.Get("cloud_provider_type").(string)]), + Components: cloudauth.FeatureComponents(data.Get("components").([]map[string]interface{})), }, } } @@ -172,6 +210,13 @@ func cloudauthAccountToResourceData(data *schema.ResourceData, cloudAccount *v2. } err = data.Set("cloud_provider_type", cloudAccount.Provider.String()) + + if err != nil { + return err + } + + err = data.Set("components", cloudAccount.Components) + if err != nil { return err } From 4050aad0ae37dc13499edfa14595cf2b2a83fa05 Mon Sep 17 00:00:00 2001 From: Christopher Geers Date: Wed, 13 Sep 2023 18:33:04 -0500 Subject: [PATCH 04/15] fix(cloudauth): update native types --- .../v2/cloudauth/go/account_component.pb.go | 2693 -------------- .../v2/cloudauth/go/cloud_account.pb.go | 3173 +++++++++++++++-- .../v2/cloudauth/go/cloud_organization.pb.go | 6 +- ...source_sysdig_secure_cloud_auth_account.go | 2 +- 4 files changed, 2972 insertions(+), 2902 deletions(-) delete mode 100644 sysdig/internal/client/v2/cloudauth/go/account_component.pb.go diff --git a/sysdig/internal/client/v2/cloudauth/go/account_component.pb.go b/sysdig/internal/client/v2/cloudauth/go/account_component.pb.go deleted file mode 100644 index 969b7bb63..000000000 --- a/sysdig/internal/client/v2/cloudauth/go/account_component.pb.go +++ /dev/null @@ -1,2693 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.30.0 -// protoc v4.23.4 -// source: account_component.proto - -package draiosproto - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - descriptorpb "google.golang.org/protobuf/types/descriptorpb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// Component enumerates all available component types -type Component int32 - -const ( - Component_COMPONENT_UNSPECIFIED Component = 0 // noop component; default value - Component_COMPONENT_CLOUD_CONNECTOR Component = 1 - Component_COMPONENT_TRUSTED_ROLE Component = 3 - Component_COMPONENT_EVENT_BRIDGE Component = 2 - Component_COMPONENT_SERVICE_PRINCIPAL Component = 4 - Component_COMPONENT_WEBHOOK_DATASOURCE Component = 5 - Component_COMPONENT_CRYPTO_KEY Component = 6 - Component_COMPONENT_CLOUD_LOGS Component = 7 -) - -// Enum value maps for Component. -var ( - Component_name = map[int32]string{ - 0: "COMPONENT_UNSPECIFIED", - 1: "COMPONENT_CLOUD_CONNECTOR", - 3: "COMPONENT_TRUSTED_ROLE", - 2: "COMPONENT_EVENT_BRIDGE", - 4: "COMPONENT_SERVICE_PRINCIPAL", - 5: "COMPONENT_WEBHOOK_DATASOURCE", - 6: "COMPONENT_CRYPTO_KEY", - 7: "COMPONENT_CLOUD_LOGS", - } - Component_value = map[string]int32{ - "COMPONENT_UNSPECIFIED": 0, - "COMPONENT_CLOUD_CONNECTOR": 1, - "COMPONENT_TRUSTED_ROLE": 3, - "COMPONENT_EVENT_BRIDGE": 2, - "COMPONENT_SERVICE_PRINCIPAL": 4, - "COMPONENT_WEBHOOK_DATASOURCE": 5, - "COMPONENT_CRYPTO_KEY": 6, - "COMPONENT_CLOUD_LOGS": 7, - } -) - -func (x Component) Enum() *Component { - p := new(Component) - *p = x - return p -} - -func (x Component) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Component) Descriptor() protoreflect.EnumDescriptor { - return file_account_component_proto_enumTypes[0].Descriptor() -} - -func (Component) Type() protoreflect.EnumType { - return &file_account_component_proto_enumTypes[0] -} - -func (x Component) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use Component.Descriptor instead. -func (Component) EnumDescriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{0} -} - -// FeatureComponents enumerates all components available to a feature -type FeatureComponents struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CloudConnector *AccountComponent `protobuf:"bytes,1,opt,name=cloud_connector,json=cloudConnector,proto3,oneof" json:"cloud_connector,omitempty"` - EventBridge *AccountComponent `protobuf:"bytes,2,opt,name=event_bridge,json=eventBridge,proto3,oneof" json:"event_bridge,omitempty"` - TrustedRole *AccountComponent `protobuf:"bytes,3,opt,name=trusted_role,json=trustedRole,proto3,oneof" json:"trusted_role,omitempty"` - ServicePrincipal *AccountComponent `protobuf:"bytes,4,opt,name=service_principal,json=servicePrincipal,proto3,oneof" json:"service_principal,omitempty"` - WebhookDatasource *AccountComponent `protobuf:"bytes,5,opt,name=webhook_datasource,json=webhookDatasource,proto3,oneof" json:"webhook_datasource,omitempty"` - CryptoKey *AccountComponent `protobuf:"bytes,6,opt,name=crypto_key,json=cryptoKey,proto3,oneof" json:"crypto_key,omitempty"` - CloudLogs *AccountComponent `protobuf:"bytes,7,opt,name=cloud_logs,json=cloudLogs,proto3,oneof" json:"cloud_logs,omitempty"` -} - -func (x *FeatureComponents) Reset() { - *x = FeatureComponents{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FeatureComponents) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FeatureComponents) ProtoMessage() {} - -func (x *FeatureComponents) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FeatureComponents.ProtoReflect.Descriptor instead. -func (*FeatureComponents) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{0} -} - -func (x *FeatureComponents) GetCloudConnector() *AccountComponent { - if x != nil { - return x.CloudConnector - } - return nil -} - -func (x *FeatureComponents) GetEventBridge() *AccountComponent { - if x != nil { - return x.EventBridge - } - return nil -} - -func (x *FeatureComponents) GetTrustedRole() *AccountComponent { - if x != nil { - return x.TrustedRole - } - return nil -} - -func (x *FeatureComponents) GetServicePrincipal() *AccountComponent { - if x != nil { - return x.ServicePrincipal - } - return nil -} - -func (x *FeatureComponents) GetWebhookDatasource() *AccountComponent { - if x != nil { - return x.WebhookDatasource - } - return nil -} - -func (x *FeatureComponents) GetCryptoKey() *AccountComponent { - if x != nil { - return x.CryptoKey - } - return nil -} - -func (x *FeatureComponents) GetCloudLogs() *AccountComponent { - if x != nil { - return x.CloudLogs - } - return nil -} - -// AccountComponent captures resourced deployed to a cloud -type AccountComponent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type Component `protobuf:"varint,1,opt,name=type,proto3,enum=draiosproto.Component" json:"type,omitempty"` - Instance string `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - ValidatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=validated_at,json=validatedAt,proto3" json:"validated_at,omitempty"` - Account *CloudAccount `protobuf:"bytes,7,opt,name=account,proto3" json:"account,omitempty"` - // Types that are assignable to Metadata: - // - // *AccountComponent_CloudConnectorMetadata - // *AccountComponent_TrustedRoleMetadata - // *AccountComponent_EventBridgeMetadata - // *AccountComponent_ServicePrincipalMetadata - // *AccountComponent_WebhookDatasourceMetadata - // *AccountComponent_CryptoKeyMetadata - // *AccountComponent_CloudLogsMetadata - Metadata isAccountComponent_Metadata `protobuf_oneof:"metadata"` -} - -func (x *AccountComponent) Reset() { - *x = AccountComponent{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountComponent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountComponent) ProtoMessage() {} - -func (x *AccountComponent) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AccountComponent.ProtoReflect.Descriptor instead. -func (*AccountComponent) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{1} -} - -func (x *AccountComponent) GetType() Component { - if x != nil { - return x.Type - } - return Component_COMPONENT_UNSPECIFIED -} - -func (x *AccountComponent) GetInstance() string { - if x != nil { - return x.Instance - } - return "" -} - -func (x *AccountComponent) GetVersion() string { - if x != nil { - return x.Version - } - return "" -} - -func (x *AccountComponent) GetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.CreatedAt - } - return nil -} - -func (x *AccountComponent) GetUpdatedAt() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedAt - } - return nil -} - -func (x *AccountComponent) GetValidatedAt() *timestamppb.Timestamp { - if x != nil { - return x.ValidatedAt - } - return nil -} - -func (x *AccountComponent) GetAccount() *CloudAccount { - if x != nil { - return x.Account - } - return nil -} - -func (m *AccountComponent) GetMetadata() isAccountComponent_Metadata { - if m != nil { - return m.Metadata - } - return nil -} - -func (x *AccountComponent) GetCloudConnectorMetadata() *CloudConnectorMetadata { - if x, ok := x.GetMetadata().(*AccountComponent_CloudConnectorMetadata); ok { - return x.CloudConnectorMetadata - } - return nil -} - -func (x *AccountComponent) GetTrustedRoleMetadata() *TrustedRoleMetadata { - if x, ok := x.GetMetadata().(*AccountComponent_TrustedRoleMetadata); ok { - return x.TrustedRoleMetadata - } - return nil -} - -func (x *AccountComponent) GetEventBridgeMetadata() *EventBridgeMetadata { - if x, ok := x.GetMetadata().(*AccountComponent_EventBridgeMetadata); ok { - return x.EventBridgeMetadata - } - return nil -} - -func (x *AccountComponent) GetServicePrincipalMetadata() *ServicePrincipalMetadata { - if x, ok := x.GetMetadata().(*AccountComponent_ServicePrincipalMetadata); ok { - return x.ServicePrincipalMetadata - } - return nil -} - -func (x *AccountComponent) GetWebhookDatasourceMetadata() *WebhookDatasourceMetadata { - if x, ok := x.GetMetadata().(*AccountComponent_WebhookDatasourceMetadata); ok { - return x.WebhookDatasourceMetadata - } - return nil -} - -func (x *AccountComponent) GetCryptoKeyMetadata() *CryptoKeyMetadata { - if x, ok := x.GetMetadata().(*AccountComponent_CryptoKeyMetadata); ok { - return x.CryptoKeyMetadata - } - return nil -} - -func (x *AccountComponent) GetCloudLogsMetadata() *CloudLogsMetadata { - if x, ok := x.GetMetadata().(*AccountComponent_CloudLogsMetadata); ok { - return x.CloudLogsMetadata - } - return nil -} - -type isAccountComponent_Metadata interface { - isAccountComponent_Metadata() -} - -type AccountComponent_CloudConnectorMetadata struct { - CloudConnectorMetadata *CloudConnectorMetadata `protobuf:"bytes,10,opt,name=cloud_connector_metadata,json=cloudConnectorMetadata,proto3,oneof"` -} - -type AccountComponent_TrustedRoleMetadata struct { - TrustedRoleMetadata *TrustedRoleMetadata `protobuf:"bytes,11,opt,name=trusted_role_metadata,json=trustedRoleMetadata,proto3,oneof"` -} - -type AccountComponent_EventBridgeMetadata struct { - EventBridgeMetadata *EventBridgeMetadata `protobuf:"bytes,12,opt,name=event_bridge_metadata,json=eventBridgeMetadata,proto3,oneof"` -} - -type AccountComponent_ServicePrincipalMetadata struct { - ServicePrincipalMetadata *ServicePrincipalMetadata `protobuf:"bytes,13,opt,name=service_principal_metadata,json=servicePrincipalMetadata,proto3,oneof"` -} - -type AccountComponent_WebhookDatasourceMetadata struct { - WebhookDatasourceMetadata *WebhookDatasourceMetadata `protobuf:"bytes,14,opt,name=webhook_datasource_metadata,json=webhookDatasourceMetadata,proto3,oneof"` -} - -type AccountComponent_CryptoKeyMetadata struct { - CryptoKeyMetadata *CryptoKeyMetadata `protobuf:"bytes,15,opt,name=crypto_key_metadata,json=cryptoKeyMetadata,proto3,oneof"` -} - -type AccountComponent_CloudLogsMetadata struct { - CloudLogsMetadata *CloudLogsMetadata `protobuf:"bytes,16,opt,name=cloud_logs_metadata,json=cloudLogsMetadata,proto3,oneof"` -} - -func (*AccountComponent_CloudConnectorMetadata) isAccountComponent_Metadata() {} - -func (*AccountComponent_TrustedRoleMetadata) isAccountComponent_Metadata() {} - -func (*AccountComponent_EventBridgeMetadata) isAccountComponent_Metadata() {} - -func (*AccountComponent_ServicePrincipalMetadata) isAccountComponent_Metadata() {} - -func (*AccountComponent_WebhookDatasourceMetadata) isAccountComponent_Metadata() {} - -func (*AccountComponent_CryptoKeyMetadata) isAccountComponent_Metadata() {} - -func (*AccountComponent_CloudLogsMetadata) isAccountComponent_Metadata() {} - -// CloudConnectorMetadata captures the metadata associated with a cloud connector deployment, segmented by provider type -type CloudConnectorMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Provider: - // - // *CloudConnectorMetadata_Aws - // *CloudConnectorMetadata_Azure_ - // *CloudConnectorMetadata_Gcp - Provider isCloudConnectorMetadata_Provider `protobuf_oneof:"provider"` -} - -func (x *CloudConnectorMetadata) Reset() { - *x = CloudConnectorMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CloudConnectorMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CloudConnectorMetadata) ProtoMessage() {} - -func (x *CloudConnectorMetadata) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CloudConnectorMetadata.ProtoReflect.Descriptor instead. -func (*CloudConnectorMetadata) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{2} -} - -func (m *CloudConnectorMetadata) GetProvider() isCloudConnectorMetadata_Provider { - if m != nil { - return m.Provider - } - return nil -} - -func (x *CloudConnectorMetadata) GetAws() *CloudConnectorMetadata_AWS { - if x, ok := x.GetProvider().(*CloudConnectorMetadata_Aws); ok { - return x.Aws - } - return nil -} - -func (x *CloudConnectorMetadata) GetAzure() *CloudConnectorMetadata_Azure { - if x, ok := x.GetProvider().(*CloudConnectorMetadata_Azure_); ok { - return x.Azure - } - return nil -} - -func (x *CloudConnectorMetadata) GetGcp() *CloudConnectorMetadata_GCP { - if x, ok := x.GetProvider().(*CloudConnectorMetadata_Gcp); ok { - return x.Gcp - } - return nil -} - -type isCloudConnectorMetadata_Provider interface { - isCloudConnectorMetadata_Provider() -} - -type CloudConnectorMetadata_Aws struct { - Aws *CloudConnectorMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` -} - -type CloudConnectorMetadata_Azure_ struct { - Azure *CloudConnectorMetadata_Azure `protobuf:"bytes,2,opt,name=azure,proto3,oneof"` -} - -type CloudConnectorMetadata_Gcp struct { - Gcp *CloudConnectorMetadata_GCP `protobuf:"bytes,3,opt,name=gcp,proto3,oneof"` -} - -func (*CloudConnectorMetadata_Aws) isCloudConnectorMetadata_Provider() {} - -func (*CloudConnectorMetadata_Azure_) isCloudConnectorMetadata_Provider() {} - -func (*CloudConnectorMetadata_Gcp) isCloudConnectorMetadata_Provider() {} - -// TrustedRoleMetadata captures the metadata associated with a trusted role resource, segmented by provider type -type TrustedRoleMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Provider: - // - // *TrustedRoleMetadata_Aws - Provider isTrustedRoleMetadata_Provider `protobuf_oneof:"provider"` -} - -func (x *TrustedRoleMetadata) Reset() { - *x = TrustedRoleMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TrustedRoleMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TrustedRoleMetadata) ProtoMessage() {} - -func (x *TrustedRoleMetadata) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TrustedRoleMetadata.ProtoReflect.Descriptor instead. -func (*TrustedRoleMetadata) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{3} -} - -func (m *TrustedRoleMetadata) GetProvider() isTrustedRoleMetadata_Provider { - if m != nil { - return m.Provider - } - return nil -} - -func (x *TrustedRoleMetadata) GetAws() *TrustedRoleMetadata_AWS { - if x, ok := x.GetProvider().(*TrustedRoleMetadata_Aws); ok { - return x.Aws - } - return nil -} - -type isTrustedRoleMetadata_Provider interface { - isTrustedRoleMetadata_Provider() -} - -type TrustedRoleMetadata_Aws struct { - Aws *TrustedRoleMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` -} - -func (*TrustedRoleMetadata_Aws) isTrustedRoleMetadata_Provider() {} - -// EventBridgeMetadata captures the metadata associated with an event bridge, segmented by provider type -type EventBridgeMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Provider: - // - // *EventBridgeMetadata_Aws - Provider isEventBridgeMetadata_Provider `protobuf_oneof:"provider"` -} - -func (x *EventBridgeMetadata) Reset() { - *x = EventBridgeMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *EventBridgeMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EventBridgeMetadata) ProtoMessage() {} - -func (x *EventBridgeMetadata) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EventBridgeMetadata.ProtoReflect.Descriptor instead. -func (*EventBridgeMetadata) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{4} -} - -func (m *EventBridgeMetadata) GetProvider() isEventBridgeMetadata_Provider { - if m != nil { - return m.Provider - } - return nil -} - -func (x *EventBridgeMetadata) GetAws() *EventBridgeMetadata_AWS { - if x, ok := x.GetProvider().(*EventBridgeMetadata_Aws); ok { - return x.Aws - } - return nil -} - -type isEventBridgeMetadata_Provider interface { - isEventBridgeMetadata_Provider() -} - -type EventBridgeMetadata_Aws struct { - Aws *EventBridgeMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` -} - -func (*EventBridgeMetadata_Aws) isEventBridgeMetadata_Provider() {} - -// ServicePrincipalMetadata captures the metadata associated with a service principal, segmented by provider type -type ServicePrincipalMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Provider: - // - // *ServicePrincipalMetadata_Gcp - // *ServicePrincipalMetadata_Okta_ - Provider isServicePrincipalMetadata_Provider `protobuf_oneof:"provider"` -} - -func (x *ServicePrincipalMetadata) Reset() { - *x = ServicePrincipalMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServicePrincipalMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServicePrincipalMetadata) ProtoMessage() {} - -func (x *ServicePrincipalMetadata) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServicePrincipalMetadata.ProtoReflect.Descriptor instead. -func (*ServicePrincipalMetadata) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{5} -} - -func (m *ServicePrincipalMetadata) GetProvider() isServicePrincipalMetadata_Provider { - if m != nil { - return m.Provider - } - return nil -} - -func (x *ServicePrincipalMetadata) GetGcp() *ServicePrincipalMetadata_GCP { - if x, ok := x.GetProvider().(*ServicePrincipalMetadata_Gcp); ok { - return x.Gcp - } - return nil -} - -func (x *ServicePrincipalMetadata) GetOkta() *ServicePrincipalMetadata_Okta { - if x, ok := x.GetProvider().(*ServicePrincipalMetadata_Okta_); ok { - return x.Okta - } - return nil -} - -type isServicePrincipalMetadata_Provider interface { - isServicePrincipalMetadata_Provider() -} - -type ServicePrincipalMetadata_Gcp struct { - Gcp *ServicePrincipalMetadata_GCP `protobuf:"bytes,1,opt,name=gcp,proto3,oneof"` -} - -type ServicePrincipalMetadata_Okta_ struct { - Okta *ServicePrincipalMetadata_Okta `protobuf:"bytes,2,opt,name=okta,proto3,oneof"` -} - -func (*ServicePrincipalMetadata_Gcp) isServicePrincipalMetadata_Provider() {} - -func (*ServicePrincipalMetadata_Okta_) isServicePrincipalMetadata_Provider() {} - -// WebhookDatasourceMetadata captures the metadata associated with a webhook integration that forwards data from the customer's premises to us, segmented by provider type -type WebhookDatasourceMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Provider: - // - // *WebhookDatasourceMetadata_Okta_ - // *WebhookDatasourceMetadata_Github_ - Provider isWebhookDatasourceMetadata_Provider `protobuf_oneof:"provider"` -} - -func (x *WebhookDatasourceMetadata) Reset() { - *x = WebhookDatasourceMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WebhookDatasourceMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhookDatasourceMetadata) ProtoMessage() {} - -func (x *WebhookDatasourceMetadata) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WebhookDatasourceMetadata.ProtoReflect.Descriptor instead. -func (*WebhookDatasourceMetadata) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{6} -} - -func (m *WebhookDatasourceMetadata) GetProvider() isWebhookDatasourceMetadata_Provider { - if m != nil { - return m.Provider - } - return nil -} - -func (x *WebhookDatasourceMetadata) GetOkta() *WebhookDatasourceMetadata_Okta { - if x, ok := x.GetProvider().(*WebhookDatasourceMetadata_Okta_); ok { - return x.Okta - } - return nil -} - -func (x *WebhookDatasourceMetadata) GetGithub() *WebhookDatasourceMetadata_Github { - if x, ok := x.GetProvider().(*WebhookDatasourceMetadata_Github_); ok { - return x.Github - } - return nil -} - -type isWebhookDatasourceMetadata_Provider interface { - isWebhookDatasourceMetadata_Provider() -} - -type WebhookDatasourceMetadata_Okta_ struct { - Okta *WebhookDatasourceMetadata_Okta `protobuf:"bytes,1,opt,name=okta,proto3,oneof"` -} - -type WebhookDatasourceMetadata_Github_ struct { - Github *WebhookDatasourceMetadata_Github `protobuf:"bytes,2,opt,name=github,proto3,oneof"` -} - -func (*WebhookDatasourceMetadata_Okta_) isWebhookDatasourceMetadata_Provider() {} - -func (*WebhookDatasourceMetadata_Github_) isWebhookDatasourceMetadata_Provider() {} - -// CryptoKeyMetadata captures the metadata associated with a KMS Key -type CryptoKeyMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Provider: - // - // *CryptoKeyMetadata_Aws - Provider isCryptoKeyMetadata_Provider `protobuf_oneof:"provider"` -} - -func (x *CryptoKeyMetadata) Reset() { - *x = CryptoKeyMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CryptoKeyMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CryptoKeyMetadata) ProtoMessage() {} - -func (x *CryptoKeyMetadata) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CryptoKeyMetadata.ProtoReflect.Descriptor instead. -func (*CryptoKeyMetadata) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{7} -} - -func (m *CryptoKeyMetadata) GetProvider() isCryptoKeyMetadata_Provider { - if m != nil { - return m.Provider - } - return nil -} - -func (x *CryptoKeyMetadata) GetAws() *CryptoKeyMetadata_AWS { - if x, ok := x.GetProvider().(*CryptoKeyMetadata_Aws); ok { - return x.Aws - } - return nil -} - -type isCryptoKeyMetadata_Provider interface { - isCryptoKeyMetadata_Provider() -} - -type CryptoKeyMetadata_Aws struct { - Aws *CryptoKeyMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` -} - -func (*CryptoKeyMetadata_Aws) isCryptoKeyMetadata_Provider() {} - -// CloudLogsMetadata captures the metadata associated cloud logs component -type CloudLogsMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Provider: - // - // *CloudLogsMetadata_Aws - Provider isCloudLogsMetadata_Provider `protobuf_oneof:"provider"` -} - -func (x *CloudLogsMetadata) Reset() { - *x = CloudLogsMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CloudLogsMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CloudLogsMetadata) ProtoMessage() {} - -func (x *CloudLogsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CloudLogsMetadata.ProtoReflect.Descriptor instead. -func (*CloudLogsMetadata) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{8} -} - -func (m *CloudLogsMetadata) GetProvider() isCloudLogsMetadata_Provider { - if m != nil { - return m.Provider - } - return nil -} - -func (x *CloudLogsMetadata) GetAws() *CloudLogsMetadata_AWS { - if x, ok := x.GetProvider().(*CloudLogsMetadata_Aws); ok { - return x.Aws - } - return nil -} - -type isCloudLogsMetadata_Provider interface { - isCloudLogsMetadata_Provider() -} - -type CloudLogsMetadata_Aws struct { - Aws *CloudLogsMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` -} - -func (*CloudLogsMetadata_Aws) isCloudLogsMetadata_Provider() {} - -type CloudConnectorMetadata_AWS struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *CloudConnectorMetadata_AWS) Reset() { - *x = CloudConnectorMetadata_AWS{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CloudConnectorMetadata_AWS) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CloudConnectorMetadata_AWS) ProtoMessage() {} - -func (x *CloudConnectorMetadata_AWS) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CloudConnectorMetadata_AWS.ProtoReflect.Descriptor instead. -func (*CloudConnectorMetadata_AWS) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{2, 0} -} - -type CloudConnectorMetadata_Azure struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *CloudConnectorMetadata_Azure) Reset() { - *x = CloudConnectorMetadata_Azure{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CloudConnectorMetadata_Azure) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CloudConnectorMetadata_Azure) ProtoMessage() {} - -func (x *CloudConnectorMetadata_Azure) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CloudConnectorMetadata_Azure.ProtoReflect.Descriptor instead. -func (*CloudConnectorMetadata_Azure) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{2, 1} -} - -type CloudConnectorMetadata_GCP struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *CloudConnectorMetadata_GCP) Reset() { - *x = CloudConnectorMetadata_GCP{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CloudConnectorMetadata_GCP) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CloudConnectorMetadata_GCP) ProtoMessage() {} - -func (x *CloudConnectorMetadata_GCP) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CloudConnectorMetadata_GCP.ProtoReflect.Descriptor instead. -func (*CloudConnectorMetadata_GCP) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{2, 2} -} - -type TrustedRoleMetadata_AWS struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RoleName string `protobuf:"bytes,1,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` -} - -func (x *TrustedRoleMetadata_AWS) Reset() { - *x = TrustedRoleMetadata_AWS{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TrustedRoleMetadata_AWS) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TrustedRoleMetadata_AWS) ProtoMessage() {} - -func (x *TrustedRoleMetadata_AWS) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TrustedRoleMetadata_AWS.ProtoReflect.Descriptor instead. -func (*TrustedRoleMetadata_AWS) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{3, 0} -} - -func (x *TrustedRoleMetadata_AWS) GetRoleName() string { - if x != nil { - return x.RoleName - } - return "" -} - -type EventBridgeMetadata_AWS struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RoleName string `protobuf:"bytes,1,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - RuleName string `protobuf:"bytes,2,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` -} - -func (x *EventBridgeMetadata_AWS) Reset() { - *x = EventBridgeMetadata_AWS{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *EventBridgeMetadata_AWS) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EventBridgeMetadata_AWS) ProtoMessage() {} - -func (x *EventBridgeMetadata_AWS) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EventBridgeMetadata_AWS.ProtoReflect.Descriptor instead. -func (*EventBridgeMetadata_AWS) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{4, 0} -} - -func (x *EventBridgeMetadata_AWS) GetRoleName() string { - if x != nil { - return x.RoleName - } - return "" -} - -func (x *EventBridgeMetadata_AWS) GetRuleName() string { - if x != nil { - return x.RuleName - } - return "" -} - -type ServicePrincipalMetadata_GCP struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Key *ServicePrincipalMetadata_GCP_Key `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` -} - -func (x *ServicePrincipalMetadata_GCP) Reset() { - *x = ServicePrincipalMetadata_GCP{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServicePrincipalMetadata_GCP) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServicePrincipalMetadata_GCP) ProtoMessage() {} - -func (x *ServicePrincipalMetadata_GCP) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServicePrincipalMetadata_GCP.ProtoReflect.Descriptor instead. -func (*ServicePrincipalMetadata_GCP) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{5, 0} -} - -func (x *ServicePrincipalMetadata_GCP) GetKey() *ServicePrincipalMetadata_GCP_Key { - if x != nil { - return x.Key - } - return nil -} - -type ServicePrincipalMetadata_Okta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OauthApp *ServicePrincipalMetadata_Okta_OAuthApp `protobuf:"bytes,1,opt,name=oauth_app,json=oauthApp,proto3" json:"oauth_app,omitempty"` -} - -func (x *ServicePrincipalMetadata_Okta) Reset() { - *x = ServicePrincipalMetadata_Okta{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServicePrincipalMetadata_Okta) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServicePrincipalMetadata_Okta) ProtoMessage() {} - -func (x *ServicePrincipalMetadata_Okta) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServicePrincipalMetadata_Okta.ProtoReflect.Descriptor instead. -func (*ServicePrincipalMetadata_Okta) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{5, 1} -} - -func (x *ServicePrincipalMetadata_Okta) GetOauthApp() *ServicePrincipalMetadata_Okta_OAuthApp { - if x != nil { - return x.OauthApp - } - return nil -} - -type ServicePrincipalMetadata_GCP_Key struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - PrivateKeyId string `protobuf:"bytes,3,opt,name=private_key_id,json=privateKeyId,proto3" json:"private_key_id,omitempty"` - PrivateKey string `protobuf:"bytes,4,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` - ClientEmail string `protobuf:"bytes,5,opt,name=client_email,json=clientEmail,proto3" json:"client_email,omitempty"` - ClientId string `protobuf:"bytes,6,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - AuthUri string `protobuf:"bytes,7,opt,name=auth_uri,json=authUri,proto3" json:"auth_uri,omitempty"` - TokenUri string `protobuf:"bytes,8,opt,name=token_uri,json=tokenUri,proto3" json:"token_uri,omitempty"` - AuthProviderX509CertUrl string `protobuf:"bytes,9,opt,name=auth_provider_x509_cert_url,json=authProviderX509CertUrl,proto3" json:"auth_provider_x509_cert_url,omitempty"` - ClientX509CertUrl string `protobuf:"bytes,10,opt,name=client_x509_cert_url,json=clientX509CertUrl,proto3" json:"client_x509_cert_url,omitempty"` -} - -func (x *ServicePrincipalMetadata_GCP_Key) Reset() { - *x = ServicePrincipalMetadata_GCP_Key{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServicePrincipalMetadata_GCP_Key) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServicePrincipalMetadata_GCP_Key) ProtoMessage() {} - -func (x *ServicePrincipalMetadata_GCP_Key) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServicePrincipalMetadata_GCP_Key.ProtoReflect.Descriptor instead. -func (*ServicePrincipalMetadata_GCP_Key) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{5, 0, 0} -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetProjectId() string { - if x != nil { - return x.ProjectId - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetPrivateKeyId() string { - if x != nil { - return x.PrivateKeyId - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetPrivateKey() string { - if x != nil { - return x.PrivateKey - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetClientEmail() string { - if x != nil { - return x.ClientEmail - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetClientId() string { - if x != nil { - return x.ClientId - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetAuthUri() string { - if x != nil { - return x.AuthUri - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetTokenUri() string { - if x != nil { - return x.TokenUri - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetAuthProviderX509CertUrl() string { - if x != nil { - return x.AuthProviderX509CertUrl - } - return "" -} - -func (x *ServicePrincipalMetadata_GCP_Key) GetClientX509CertUrl() string { - if x != nil { - return x.ClientX509CertUrl - } - return "" -} - -type ServicePrincipalMetadata_Okta_OAuthApp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IngestionId string `protobuf:"bytes,1,opt,name=ingestion_id,json=ingestionId,proto3" json:"ingestion_id,omitempty"` - OktaUrl string `protobuf:"bytes,2,opt,name=okta_url,json=oktaUrl,proto3" json:"okta_url,omitempty"` - ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - ClientSecret string `protobuf:"bytes,4,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` -} - -func (x *ServicePrincipalMetadata_Okta_OAuthApp) Reset() { - *x = ServicePrincipalMetadata_Okta_OAuthApp{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ServicePrincipalMetadata_Okta_OAuthApp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ServicePrincipalMetadata_Okta_OAuthApp) ProtoMessage() {} - -func (x *ServicePrincipalMetadata_Okta_OAuthApp) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ServicePrincipalMetadata_Okta_OAuthApp.ProtoReflect.Descriptor instead. -func (*ServicePrincipalMetadata_Okta_OAuthApp) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{5, 1, 0} -} - -func (x *ServicePrincipalMetadata_Okta_OAuthApp) GetIngestionId() string { - if x != nil { - return x.IngestionId - } - return "" -} - -func (x *ServicePrincipalMetadata_Okta_OAuthApp) GetOktaUrl() string { - if x != nil { - return x.OktaUrl - } - return "" -} - -func (x *ServicePrincipalMetadata_Okta_OAuthApp) GetClientId() string { - if x != nil { - return x.ClientId - } - return "" -} - -func (x *ServicePrincipalMetadata_Okta_OAuthApp) GetClientSecret() string { - if x != nil { - return x.ClientSecret - } - return "" -} - -type WebhookDatasourceMetadata_Okta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - WebhookDatasource *WebhookDatasourceMetadata_Okta_WebhookDatasource `protobuf:"bytes,1,opt,name=webhook_datasource,json=webhookDatasource,proto3" json:"webhook_datasource,omitempty"` -} - -func (x *WebhookDatasourceMetadata_Okta) Reset() { - *x = WebhookDatasourceMetadata_Okta{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WebhookDatasourceMetadata_Okta) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhookDatasourceMetadata_Okta) ProtoMessage() {} - -func (x *WebhookDatasourceMetadata_Okta) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[18] - 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_Okta.ProtoReflect.Descriptor instead. -func (*WebhookDatasourceMetadata_Okta) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{6, 0} -} - -func (x *WebhookDatasourceMetadata_Okta) GetWebhookDatasource() *WebhookDatasourceMetadata_Okta_WebhookDatasource { - if x != nil { - return x.WebhookDatasource - } - return nil -} - -type WebhookDatasourceMetadata_Github struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - WebhookDatasource *WebhookDatasourceMetadata_Github_WebhookDatasource `protobuf:"bytes,1,opt,name=webhook_datasource,json=webhookDatasource,proto3" json:"webhook_datasource,omitempty"` -} - -func (x *WebhookDatasourceMetadata_Github) Reset() { - *x = WebhookDatasourceMetadata_Github{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WebhookDatasourceMetadata_Github) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhookDatasourceMetadata_Github) ProtoMessage() {} - -func (x *WebhookDatasourceMetadata_Github) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[19] - 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_Github.ProtoReflect.Descriptor instead. -func (*WebhookDatasourceMetadata_Github) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{6, 1} -} - -func (x *WebhookDatasourceMetadata_Github) GetWebhookDatasource() *WebhookDatasourceMetadata_Github_WebhookDatasource { - if x != nil { - return x.WebhookDatasource - } - return nil -} - -type WebhookDatasourceMetadata_Okta_WebhookDatasource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HookId string `protobuf:"bytes,1,opt,name=hook_id,json=hookId,proto3" json:"hook_id,omitempty"` - IngestionId string `protobuf:"bytes,2,opt,name=ingestion_id,json=ingestionId,proto3" json:"ingestion_id,omitempty"` - IngestionUrl string `protobuf:"bytes,3,opt,name=ingestion_url,json=ingestionUrl,proto3" json:"ingestion_url,omitempty"` - OktaEventTypes []string `protobuf:"bytes,4,rep,name=okta_event_types,json=oktaEventTypes,proto3" json:"okta_event_types,omitempty"` -} - -func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) Reset() { - *x = WebhookDatasourceMetadata_Okta_WebhookDatasource{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhookDatasourceMetadata_Okta_WebhookDatasource) ProtoMessage() {} - -func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[20] - 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_Okta_WebhookDatasource.ProtoReflect.Descriptor instead. -func (*WebhookDatasourceMetadata_Okta_WebhookDatasource) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{6, 0, 0} -} - -func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) GetHookId() string { - if x != nil { - return x.HookId - } - return "" -} - -func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) GetIngestionId() string { - if x != nil { - return x.IngestionId - } - return "" -} - -func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) GetIngestionUrl() string { - if x != nil { - return x.IngestionUrl - } - return "" -} - -func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) GetOktaEventTypes() []string { - if x != nil { - return x.OktaEventTypes - } - return nil -} - -type WebhookDatasourceMetadata_Github_WebhookDatasource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HookId int64 `protobuf:"varint,1,opt,name=hook_id,json=hookId,proto3" json:"hook_id,omitempty"` - IngestionId string `protobuf:"bytes,2,opt,name=ingestion_id,json=ingestionId,proto3" json:"ingestion_id,omitempty"` - IngestionUrl string `protobuf:"bytes,3,opt,name=ingestion_url,json=ingestionUrl,proto3" json:"ingestion_url,omitempty"` - GithubInstallationId int64 `protobuf:"varint,4,opt,name=github_installation_id,json=githubInstallationId,proto3" json:"github_installation_id,omitempty"` -} - -func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) Reset() { - *x = WebhookDatasourceMetadata_Github_WebhookDatasource{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhookDatasourceMetadata_Github_WebhookDatasource) ProtoMessage() {} - -func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[21] - 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_Github_WebhookDatasource.ProtoReflect.Descriptor instead. -func (*WebhookDatasourceMetadata_Github_WebhookDatasource) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{6, 1, 0} -} - -func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) GetHookId() int64 { - if x != nil { - return x.HookId - } - return 0 -} - -func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) GetIngestionId() string { - if x != nil { - return x.IngestionId - } - return "" -} - -func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) GetIngestionUrl() string { - if x != nil { - return x.IngestionUrl - } - return "" -} - -func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) GetGithubInstallationId() int64 { - if x != nil { - return x.GithubInstallationId - } - return 0 -} - -type CryptoKeyMetadata_AWS struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Kms *CryptoKeyMetadata_AWS_KMS `protobuf:"bytes,1,opt,name=kms,proto3" json:"kms,omitempty"` -} - -func (x *CryptoKeyMetadata_AWS) Reset() { - *x = CryptoKeyMetadata_AWS{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CryptoKeyMetadata_AWS) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CryptoKeyMetadata_AWS) ProtoMessage() {} - -func (x *CryptoKeyMetadata_AWS) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[22] - 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 CryptoKeyMetadata_AWS.ProtoReflect.Descriptor instead. -func (*CryptoKeyMetadata_AWS) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{7, 0} -} - -func (x *CryptoKeyMetadata_AWS) GetKms() *CryptoKeyMetadata_AWS_KMS { - if x != nil { - return x.Kms - } - return nil -} - -type CryptoKeyMetadata_AWS_KMS struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Alias string `protobuf:"bytes,1,opt,name=alias,proto3" json:"alias,omitempty"` - Regions []string `protobuf:"bytes,2,rep,name=regions,proto3" json:"regions,omitempty"` -} - -func (x *CryptoKeyMetadata_AWS_KMS) Reset() { - *x = CryptoKeyMetadata_AWS_KMS{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CryptoKeyMetadata_AWS_KMS) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CryptoKeyMetadata_AWS_KMS) ProtoMessage() {} - -func (x *CryptoKeyMetadata_AWS_KMS) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[23] - 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 CryptoKeyMetadata_AWS_KMS.ProtoReflect.Descriptor instead. -func (*CryptoKeyMetadata_AWS_KMS) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{7, 0, 0} -} - -func (x *CryptoKeyMetadata_AWS_KMS) GetAlias() string { - if x != nil { - return x.Alias - } - return "" -} - -func (x *CryptoKeyMetadata_AWS_KMS) GetRegions() []string { - if x != nil { - return x.Regions - } - return nil -} - -type CloudLogsMetadata_AWS struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Cloudtrail_S3Bucket *CloudLogsMetadata_AWS_CloudTrailS3Bucket `protobuf:"bytes,1,opt,name=cloudtrail_S3_bucket,json=cloudtrailS3Bucket,proto3" json:"cloudtrail_S3_bucket,omitempty"` -} - -func (x *CloudLogsMetadata_AWS) Reset() { - *x = CloudLogsMetadata_AWS{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CloudLogsMetadata_AWS) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CloudLogsMetadata_AWS) ProtoMessage() {} - -func (x *CloudLogsMetadata_AWS) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[24] - 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 CloudLogsMetadata_AWS.ProtoReflect.Descriptor instead. -func (*CloudLogsMetadata_AWS) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{8, 0} -} - -func (x *CloudLogsMetadata_AWS) GetCloudtrail_S3Bucket() *CloudLogsMetadata_AWS_CloudTrailS3Bucket { - if x != nil { - return x.Cloudtrail_S3Bucket - } - return nil -} - -type CloudLogsMetadata_AWS_CloudTrailS3Bucket struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - BucketName string `protobuf:"bytes,1,opt,name=bucket_name,json=bucketName,proto3" json:"bucket_name,omitempty"` - BucketRegion string `protobuf:"bytes,2,opt,name=bucket_region,json=bucketRegion,proto3" json:"bucket_region,omitempty"` - ExternalId string `protobuf:"bytes,3,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` - RoleName string `protobuf:"bytes,4,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - PathPrefix string `protobuf:"bytes,5,opt,name=path_prefix,json=pathPrefix,proto3" json:"path_prefix,omitempty"` -} - -func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) Reset() { - *x = CloudLogsMetadata_AWS_CloudTrailS3Bucket{} - if protoimpl.UnsafeEnabled { - mi := &file_account_component_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CloudLogsMetadata_AWS_CloudTrailS3Bucket) ProtoMessage() {} - -func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) ProtoReflect() protoreflect.Message { - mi := &file_account_component_proto_msgTypes[25] - 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 CloudLogsMetadata_AWS_CloudTrailS3Bucket.ProtoReflect.Descriptor instead. -func (*CloudLogsMetadata_AWS_CloudTrailS3Bucket) Descriptor() ([]byte, []int) { - return file_account_component_proto_rawDescGZIP(), []int{8, 0, 0} -} - -func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetBucketName() string { - if x != nil { - return x.BucketName - } - return "" -} - -func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetBucketRegion() string { - if x != nil { - return x.BucketRegion - } - return "" -} - -func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetExternalId() string { - if x != nil { - return x.ExternalId - } - return "" -} - -func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetRoleName() string { - if x != nil { - return x.RoleName - } - return "" -} - -func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetPathPrefix() string { - if x != nil { - return x.PathPrefix - } - return "" -} - -var file_account_component_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptorpb.FieldOptions)(nil), - ExtensionType: (*string)(nil), - Field: 50001, - Name: "draiosproto.encryption", - Tag: "bytes,50001,opt,name=encryption", - Filename: "account_component.proto", - }, -} - -// Extension fields to descriptorpb.FieldOptions. -var ( - // optional string encryption = 50001; - E_Encryption = &file_account_component_proto_extTypes[0] -) - -var File_account_component_proto protoreflect.FileDescriptor - -var file_account_component_proto_rawDesc = []byte{ - 0x0a, 0x17, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x64, 0x72, 0x61, 0x69, 0x6f, - 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, - 0x05, 0x0a, 0x11, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x75, 0x73, - 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, - 0x0b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, - 0x69, 0x70, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x72, 0x61, - 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x03, 0x52, 0x10, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x51, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, - 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x04, 0x52, 0x11, 0x77, - 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x05, 0x52, 0x09, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, - 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x72, 0x61, - 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x09, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, - 0x63, 0x69, 0x70, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0xf0, 0x07, 0x0a, 0x10, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, - 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, - 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x18, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x56, 0x0a, 0x15, - 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x72, - 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x13, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x56, 0x0a, 0x15, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x65, 0x0a, 0x1a, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, - 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x68, 0x0a, 0x1b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 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, - 0x48, 0x00, 0x52, 0x19, 0x77, 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, 0x50, 0x0a, - 0x13, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 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, 0x48, 0x00, 0x52, 0x11, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x50, 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 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, 0x48, 0x00, 0x52, 0x11, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x0a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf8, 0x01, - 0x0a, 0x16, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x48, 0x00, - 0x52, 0x03, 0x61, 0x77, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, - 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x48, 0x00, - 0x52, 0x03, 0x67, 0x63, 0x70, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x57, 0x53, 0x1a, 0x07, 0x0a, 0x05, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x1a, 0x05, 0x0a, 0x03, 0x47, 0x43, 0x50, 0x42, 0x0a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x7f, 0x0a, 0x13, 0x54, 0x72, 0x75, 0x73, - 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x38, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, - 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, - 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, - 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 0x1a, 0x22, 0x0a, 0x03, 0x41, 0x57, 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, 0x42, 0x0a, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x13, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x38, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x41, 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 0x1a, 0x3f, 0x0a, 0x03, 0x41, - 0x57, 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, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x81, 0x07, 0x0a, 0x18, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, - 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x48, 0x00, 0x52, - 0x03, 0x67, 0x63, 0x70, 0x12, 0x40, 0x0a, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, - 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x1a, 0xcf, 0x03, 0x0a, 0x03, 0x47, 0x43, 0x50, 0x12, 0x3f, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x72, - 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, - 0x86, 0x03, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0e, 0x70, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, - 0x43, 0x4d, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x49, 0x64, - 0x12, 0x2f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, - 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, - 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1b, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, - 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, - 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x58, 0x35, 0x30, 0x39, - 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58, 0x35, 0x30, - 0x39, 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x1a, 0x85, 0x02, 0x0a, 0x04, 0x4f, 0x6b, 0x74, - 0x61, 0x12, 0x50, 0x0a, 0x09, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, - 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, - 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x52, 0x08, 0x6f, 0x61, 0x75, 0x74, 0x68, - 0x41, 0x70, 0x70, 0x1a, 0xaa, 0x01, 0x0a, 0x08, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, - 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6b, 0x74, 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6b, 0x74, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x2b, - 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, - 0x4d, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0d, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, - 0x43, 0x4d, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xf3, 0x05, 0x0a, - 0x19, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x04, 0x6f, 0x6b, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, - 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x12, 0x47, 0x0a, - 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x48, 0x00, 0x52, 0x06, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x1a, 0x95, 0x02, 0x0a, 0x04, 0x4f, 0x6b, 0x74, 0x61, 0x12, - 0x6c, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x64, 0x72, - 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x9e, 0x01, - 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x6b, 0x74, 0x61, 0x5f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, - 0x6f, 0x6b, 0x74, 0x61, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xa5, - 0x02, 0x0a, 0x06, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x6e, 0x0a, 0x12, 0x77, 0x65, 0x62, - 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, - 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xaa, 0x01, 0x0a, 0x11, 0x57, 0x65, - 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, - 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, - 0x12, 0x34, 0x0a, 0x16, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x14, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 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, 0x94, 0x03, 0x0a, 0x11, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, - 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x03, 0x61, 0x77, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, - 0x77, 0x73, 0x1a, 0xba, 0x02, 0x0a, 0x03, 0x41, 0x57, 0x53, 0x12, 0x67, 0x0a, 0x14, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x53, 0x33, 0x5f, 0x62, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, - 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x2e, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, - 0x12, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x1a, 0xc9, 0x01, 0x0a, 0x12, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x72, 0x61, - 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x12, 0x2f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, - 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, - 0x64, 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, 0x42, - 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x5f, 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, 0x19, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41, 0x75, 0x74, 0x68, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 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 ( - file_account_component_proto_rawDescOnce sync.Once - file_account_component_proto_rawDescData = file_account_component_proto_rawDesc -) - -func file_account_component_proto_rawDescGZIP() []byte { - file_account_component_proto_rawDescOnce.Do(func() { - file_account_component_proto_rawDescData = protoimpl.X.CompressGZIP(file_account_component_proto_rawDescData) - }) - return file_account_component_proto_rawDescData -} - -var file_account_component_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_account_component_proto_msgTypes = make([]protoimpl.MessageInfo, 26) -var file_account_component_proto_goTypes = []interface{}{ - (Component)(0), // 0: draiosproto.Component - (*FeatureComponents)(nil), // 1: draiosproto.FeatureComponents - (*AccountComponent)(nil), // 2: draiosproto.AccountComponent - (*CloudConnectorMetadata)(nil), // 3: draiosproto.CloudConnectorMetadata - (*TrustedRoleMetadata)(nil), // 4: draiosproto.TrustedRoleMetadata - (*EventBridgeMetadata)(nil), // 5: draiosproto.EventBridgeMetadata - (*ServicePrincipalMetadata)(nil), // 6: draiosproto.ServicePrincipalMetadata - (*WebhookDatasourceMetadata)(nil), // 7: draiosproto.WebhookDatasourceMetadata - (*CryptoKeyMetadata)(nil), // 8: draiosproto.CryptoKeyMetadata - (*CloudLogsMetadata)(nil), // 9: draiosproto.CloudLogsMetadata - (*CloudConnectorMetadata_AWS)(nil), // 10: draiosproto.CloudConnectorMetadata.AWS - (*CloudConnectorMetadata_Azure)(nil), // 11: draiosproto.CloudConnectorMetadata.Azure - (*CloudConnectorMetadata_GCP)(nil), // 12: draiosproto.CloudConnectorMetadata.GCP - (*TrustedRoleMetadata_AWS)(nil), // 13: draiosproto.TrustedRoleMetadata.AWS - (*EventBridgeMetadata_AWS)(nil), // 14: draiosproto.EventBridgeMetadata.AWS - (*ServicePrincipalMetadata_GCP)(nil), // 15: draiosproto.ServicePrincipalMetadata.GCP - (*ServicePrincipalMetadata_Okta)(nil), // 16: draiosproto.ServicePrincipalMetadata.Okta - (*ServicePrincipalMetadata_GCP_Key)(nil), // 17: draiosproto.ServicePrincipalMetadata.GCP.Key - (*ServicePrincipalMetadata_Okta_OAuthApp)(nil), // 18: draiosproto.ServicePrincipalMetadata.Okta.OAuthApp - (*WebhookDatasourceMetadata_Okta)(nil), // 19: draiosproto.WebhookDatasourceMetadata.Okta - (*WebhookDatasourceMetadata_Github)(nil), // 20: draiosproto.WebhookDatasourceMetadata.Github - (*WebhookDatasourceMetadata_Okta_WebhookDatasource)(nil), // 21: draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource - (*WebhookDatasourceMetadata_Github_WebhookDatasource)(nil), // 22: draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource - (*CryptoKeyMetadata_AWS)(nil), // 23: draiosproto.CryptoKeyMetadata.AWS - (*CryptoKeyMetadata_AWS_KMS)(nil), // 24: draiosproto.CryptoKeyMetadata.AWS.KMS - (*CloudLogsMetadata_AWS)(nil), // 25: draiosproto.CloudLogsMetadata.AWS - (*CloudLogsMetadata_AWS_CloudTrailS3Bucket)(nil), // 26: draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket - (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp - (*CloudAccount)(nil), // 28: draiosproto.CloudAccount - (*descriptorpb.FieldOptions)(nil), // 29: google.protobuf.FieldOptions -} -var file_account_component_proto_depIdxs = []int32{ - 2, // 0: draiosproto.FeatureComponents.cloud_connector:type_name -> draiosproto.AccountComponent - 2, // 1: draiosproto.FeatureComponents.event_bridge:type_name -> draiosproto.AccountComponent - 2, // 2: draiosproto.FeatureComponents.trusted_role:type_name -> draiosproto.AccountComponent - 2, // 3: draiosproto.FeatureComponents.service_principal:type_name -> draiosproto.AccountComponent - 2, // 4: draiosproto.FeatureComponents.webhook_datasource:type_name -> draiosproto.AccountComponent - 2, // 5: draiosproto.FeatureComponents.crypto_key:type_name -> draiosproto.AccountComponent - 2, // 6: draiosproto.FeatureComponents.cloud_logs:type_name -> draiosproto.AccountComponent - 0, // 7: draiosproto.AccountComponent.type:type_name -> draiosproto.Component - 27, // 8: draiosproto.AccountComponent.created_at:type_name -> google.protobuf.Timestamp - 27, // 9: draiosproto.AccountComponent.updated_at:type_name -> google.protobuf.Timestamp - 27, // 10: draiosproto.AccountComponent.validated_at:type_name -> google.protobuf.Timestamp - 28, // 11: draiosproto.AccountComponent.account:type_name -> draiosproto.CloudAccount - 3, // 12: draiosproto.AccountComponent.cloud_connector_metadata:type_name -> draiosproto.CloudConnectorMetadata - 4, // 13: draiosproto.AccountComponent.trusted_role_metadata:type_name -> draiosproto.TrustedRoleMetadata - 5, // 14: draiosproto.AccountComponent.event_bridge_metadata:type_name -> draiosproto.EventBridgeMetadata - 6, // 15: draiosproto.AccountComponent.service_principal_metadata:type_name -> draiosproto.ServicePrincipalMetadata - 7, // 16: draiosproto.AccountComponent.webhook_datasource_metadata:type_name -> draiosproto.WebhookDatasourceMetadata - 8, // 17: draiosproto.AccountComponent.crypto_key_metadata:type_name -> draiosproto.CryptoKeyMetadata - 9, // 18: draiosproto.AccountComponent.cloud_logs_metadata:type_name -> draiosproto.CloudLogsMetadata - 10, // 19: draiosproto.CloudConnectorMetadata.aws:type_name -> draiosproto.CloudConnectorMetadata.AWS - 11, // 20: draiosproto.CloudConnectorMetadata.azure:type_name -> draiosproto.CloudConnectorMetadata.Azure - 12, // 21: draiosproto.CloudConnectorMetadata.gcp:type_name -> draiosproto.CloudConnectorMetadata.GCP - 13, // 22: draiosproto.TrustedRoleMetadata.aws:type_name -> draiosproto.TrustedRoleMetadata.AWS - 14, // 23: draiosproto.EventBridgeMetadata.aws:type_name -> draiosproto.EventBridgeMetadata.AWS - 15, // 24: draiosproto.ServicePrincipalMetadata.gcp:type_name -> draiosproto.ServicePrincipalMetadata.GCP - 16, // 25: draiosproto.ServicePrincipalMetadata.okta:type_name -> draiosproto.ServicePrincipalMetadata.Okta - 19, // 26: draiosproto.WebhookDatasourceMetadata.okta:type_name -> draiosproto.WebhookDatasourceMetadata.Okta - 20, // 27: draiosproto.WebhookDatasourceMetadata.github:type_name -> draiosproto.WebhookDatasourceMetadata.Github - 23, // 28: draiosproto.CryptoKeyMetadata.aws:type_name -> draiosproto.CryptoKeyMetadata.AWS - 25, // 29: draiosproto.CloudLogsMetadata.aws:type_name -> draiosproto.CloudLogsMetadata.AWS - 17, // 30: draiosproto.ServicePrincipalMetadata.GCP.key:type_name -> draiosproto.ServicePrincipalMetadata.GCP.Key - 18, // 31: draiosproto.ServicePrincipalMetadata.Okta.oauth_app:type_name -> draiosproto.ServicePrincipalMetadata.Okta.OAuthApp - 21, // 32: draiosproto.WebhookDatasourceMetadata.Okta.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource - 22, // 33: draiosproto.WebhookDatasourceMetadata.Github.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource - 24, // 34: draiosproto.CryptoKeyMetadata.AWS.kms:type_name -> draiosproto.CryptoKeyMetadata.AWS.KMS - 26, // 35: draiosproto.CloudLogsMetadata.AWS.cloudtrail_S3_bucket:type_name -> draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket - 29, // 36: draiosproto.encryption:extendee -> google.protobuf.FieldOptions - 37, // [37:37] is the sub-list for method output_type - 37, // [37:37] is the sub-list for method input_type - 37, // [37:37] is the sub-list for extension type_name - 36, // [36:37] is the sub-list for extension extendee - 0, // [0:36] is the sub-list for field type_name -} - -func init() { file_account_component_proto_init() } -func file_account_component_proto_init() { - if File_account_component_proto != nil { - return - } - file_cloud_account_proto_init() - if !protoimpl.UnsafeEnabled { - file_account_component_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FeatureComponents); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountComponent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloudConnectorMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TrustedRoleMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventBridgeMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CryptoKeyMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloudLogsMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloudConnectorMetadata_AWS); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloudConnectorMetadata_Azure); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloudConnectorMetadata_GCP); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TrustedRoleMetadata_AWS); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventBridgeMetadata_AWS); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_GCP); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_Okta); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_GCP_Key); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServicePrincipalMetadata_Okta_OAuthApp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Okta); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Github); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Okta_WebhookDatasource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebhookDatasourceMetadata_Github_WebhookDatasource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CryptoKeyMetadata_AWS); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CryptoKeyMetadata_AWS_KMS); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloudLogsMetadata_AWS); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_account_component_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - 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_account_component_proto_msgTypes[0].OneofWrappers = []interface{}{} - file_account_component_proto_msgTypes[1].OneofWrappers = []interface{}{ - (*AccountComponent_CloudConnectorMetadata)(nil), - (*AccountComponent_TrustedRoleMetadata)(nil), - (*AccountComponent_EventBridgeMetadata)(nil), - (*AccountComponent_ServicePrincipalMetadata)(nil), - (*AccountComponent_WebhookDatasourceMetadata)(nil), - (*AccountComponent_CryptoKeyMetadata)(nil), - (*AccountComponent_CloudLogsMetadata)(nil), - } - file_account_component_proto_msgTypes[2].OneofWrappers = []interface{}{ - (*CloudConnectorMetadata_Aws)(nil), - (*CloudConnectorMetadata_Azure_)(nil), - (*CloudConnectorMetadata_Gcp)(nil), - } - file_account_component_proto_msgTypes[3].OneofWrappers = []interface{}{ - (*TrustedRoleMetadata_Aws)(nil), - } - file_account_component_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*EventBridgeMetadata_Aws)(nil), - } - file_account_component_proto_msgTypes[5].OneofWrappers = []interface{}{ - (*ServicePrincipalMetadata_Gcp)(nil), - (*ServicePrincipalMetadata_Okta_)(nil), - } - file_account_component_proto_msgTypes[6].OneofWrappers = []interface{}{ - (*WebhookDatasourceMetadata_Okta_)(nil), - (*WebhookDatasourceMetadata_Github_)(nil), - } - file_account_component_proto_msgTypes[7].OneofWrappers = []interface{}{ - (*CryptoKeyMetadata_Aws)(nil), - } - file_account_component_proto_msgTypes[8].OneofWrappers = []interface{}{ - (*CloudLogsMetadata_Aws)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_account_component_proto_rawDesc, - NumEnums: 1, - NumMessages: 26, - NumExtensions: 1, - NumServices: 0, - }, - GoTypes: file_account_component_proto_goTypes, - DependencyIndexes: file_account_component_proto_depIdxs, - EnumInfos: file_account_component_proto_enumTypes, - MessageInfos: file_account_component_proto_msgTypes, - ExtensionInfos: file_account_component_proto_extTypes, - }.Build() - File_account_component_proto = out.File - file_account_component_proto_rawDesc = nil - file_account_component_proto_goTypes = nil - file_account_component_proto_depIdxs = nil -} \ No newline at end of file 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 e2a7337f4..e847af484 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.30.0 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: cloud_account.proto package draiosproto @@ -9,6 +9,7 @@ package draiosproto import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" @@ -139,6 +140,71 @@ func (Feature) EnumDescriptor() ([]byte, []int) { return file_cloud_account_proto_rawDescGZIP(), []int{1} } +// Component enumerates all available component types +type Component int32 + +const ( + Component_COMPONENT_UNSPECIFIED Component = 0 // noop component; default value + Component_COMPONENT_CLOUD_CONNECTOR Component = 1 + Component_COMPONENT_TRUSTED_ROLE Component = 3 + Component_COMPONENT_EVENT_BRIDGE Component = 2 + Component_COMPONENT_SERVICE_PRINCIPAL Component = 4 + Component_COMPONENT_WEBHOOK_DATASOURCE Component = 5 + Component_COMPONENT_CRYPTO_KEY Component = 6 + Component_COMPONENT_CLOUD_LOGS Component = 7 +) + +// Enum value maps for Component. +var ( + Component_name = map[int32]string{ + 0: "COMPONENT_UNSPECIFIED", + 1: "COMPONENT_CLOUD_CONNECTOR", + 3: "COMPONENT_TRUSTED_ROLE", + 2: "COMPONENT_EVENT_BRIDGE", + 4: "COMPONENT_SERVICE_PRINCIPAL", + 5: "COMPONENT_WEBHOOK_DATASOURCE", + 6: "COMPONENT_CRYPTO_KEY", + 7: "COMPONENT_CLOUD_LOGS", + } + Component_value = map[string]int32{ + "COMPONENT_UNSPECIFIED": 0, + "COMPONENT_CLOUD_CONNECTOR": 1, + "COMPONENT_TRUSTED_ROLE": 3, + "COMPONENT_EVENT_BRIDGE": 2, + "COMPONENT_SERVICE_PRINCIPAL": 4, + "COMPONENT_WEBHOOK_DATASOURCE": 5, + "COMPONENT_CRYPTO_KEY": 6, + "COMPONENT_CLOUD_LOGS": 7, + } +) + +func (x Component) Enum() *Component { + p := new(Component) + *p = x + return p +} + +func (x Component) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Component) Descriptor() protoreflect.EnumDescriptor { + return file_cloud_account_proto_enumTypes[2].Descriptor() +} + +func (Component) Type() protoreflect.EnumType { + return &file_cloud_account_proto_enumTypes[2] +} + +func (x Component) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Component.Descriptor instead. +func (Component) EnumDescriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{2} +} + // CloudAccount captures a snapshot of basic metadata fields associated with a cloud. type CloudAccount struct { state protoimpl.MessageState @@ -156,7 +222,8 @@ type CloudAccount struct { Feature *AccountFeatures `protobuf:"bytes,9,opt,name=feature,proto3" json:"feature,omitempty"` // features of the account CreatedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // account create time UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` // account update time - Components []string `protobuf:"bytes,12,rep,name=components,proto3" json:"components,omitempty"` // string identifiers of installed components + Components []*AccountComponent `protobuf:"bytes,12,rep,name=components,proto3" json:"components,omitempty"` // string identifiers of installed components + Virtual bool `protobuf:"varint,13,opt,name=virtual,proto3" json:"virtual,omitempty"` // virtual accounts are symbolic, representing accounts owned by a foreign system } func (x *CloudAccount) Reset() { @@ -268,13 +335,20 @@ func (x *CloudAccount) GetUpdatedAt() *timestamppb.Timestamp { return nil } -func (x *CloudAccount) GetComponents() []string { +func (x *CloudAccount) GetComponents() []*AccountComponent { if x != nil { return x.Components } return nil } +func (x *CloudAccount) GetVirtual() bool { + if x != nil { + return x.Virtual + } + return false +} + type AccountFeatures struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -434,216 +508,2905 @@ func (x *AccountFeature) GetComponents() []string { return nil } -var File_cloud_account_proto protoreflect.FileDescriptor +// FeatureComponents enumerates all components available to a feature +type FeatureComponents struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -var file_cloud_account_proto_rawDesc = []byte{ - 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x03, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x41, - 0x6c, 0x69, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, - 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xbe, 0x03, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x17, 0x73, 0x65, 0x63, - 0x75, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x72, 0x61, - 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x15, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x54, - 0x68, 0x72, 0x65, 0x61, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, - 0x0a, 0x15, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x70, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x73, 0x65, 0x63, 0x75, - 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, - 0x5b, 0x0a, 0x1b, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x19, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x15, - 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x72, - 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x57, 0x0a, - 0x19, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x6c, 0x65, 0x73, - 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x6c, 0x65, 0x73, 0x73, 0x53, 0x63, - 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0xcd, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2a, 0x84, 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, 0x2a, 0xdd, 0x01, - 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, 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, + CloudConnector *AccountComponent `protobuf:"bytes,1,opt,name=cloud_connector,json=cloudConnector,proto3,oneof" json:"cloud_connector,omitempty"` + EventBridge *AccountComponent `protobuf:"bytes,2,opt,name=event_bridge,json=eventBridge,proto3,oneof" json:"event_bridge,omitempty"` + TrustedRole *AccountComponent `protobuf:"bytes,3,opt,name=trusted_role,json=trustedRole,proto3,oneof" json:"trusted_role,omitempty"` + ServicePrincipal *AccountComponent `protobuf:"bytes,4,opt,name=service_principal,json=servicePrincipal,proto3,oneof" json:"service_principal,omitempty"` + WebhookDatasource *AccountComponent `protobuf:"bytes,5,opt,name=webhook_datasource,json=webhookDatasource,proto3,oneof" json:"webhook_datasource,omitempty"` + CryptoKey *AccountComponent `protobuf:"bytes,6,opt,name=crypto_key,json=cryptoKey,proto3,oneof" json:"crypto_key,omitempty"` + CloudLogs *AccountComponent `protobuf:"bytes,7,opt,name=cloud_logs,json=cloudLogs,proto3,oneof" json:"cloud_logs,omitempty"` } -var ( - file_cloud_account_proto_rawDescOnce sync.Once - file_cloud_account_proto_rawDescData = file_cloud_account_proto_rawDesc -) +func (x *FeatureComponents) Reset() { + *x = FeatureComponents{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func file_cloud_account_proto_rawDescGZIP() []byte { - file_cloud_account_proto_rawDescOnce.Do(func() { - file_cloud_account_proto_rawDescData = protoimpl.X.CompressGZIP(file_cloud_account_proto_rawDescData) - }) - return file_cloud_account_proto_rawDescData +func (x *FeatureComponents) String() string { + return protoimpl.X.MessageStringOf(x) } -var file_cloud_account_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_cloud_account_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_cloud_account_proto_goTypes = []interface{}{ - (Provider)(0), // 0: draiosproto.Provider - (Feature)(0), // 1: draiosproto.Feature - (*CloudAccount)(nil), // 2: draiosproto.CloudAccount - (*AccountFeatures)(nil), // 3: draiosproto.AccountFeatures - (*AccountFeature)(nil), // 4: draiosproto.AccountFeature - (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp +func (*FeatureComponents) ProtoMessage() {} + +func (x *FeatureComponents) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var file_cloud_account_proto_depIdxs = []int32{ - 0, // 0: draiosproto.CloudAccount.provider:type_name -> draiosproto.Provider - 3, // 1: draiosproto.CloudAccount.feature:type_name -> draiosproto.AccountFeatures - 5, // 2: draiosproto.CloudAccount.created_at:type_name -> google.protobuf.Timestamp - 5, // 3: draiosproto.CloudAccount.updated_at:type_name -> google.protobuf.Timestamp - 4, // 4: draiosproto.AccountFeatures.secure_threat_detection:type_name -> draiosproto.AccountFeature - 4, // 5: draiosproto.AccountFeatures.secure_config_posture:type_name -> draiosproto.AccountFeature - 4, // 6: draiosproto.AccountFeatures.secure_identity_entitlement:type_name -> draiosproto.AccountFeature - 4, // 7: draiosproto.AccountFeatures.monitor_cloud_metrics:type_name -> draiosproto.AccountFeature - 4, // 8: draiosproto.AccountFeatures.secure_agentless_scanning:type_name -> draiosproto.AccountFeature - 1, // 9: draiosproto.AccountFeature.type:type_name -> draiosproto.Feature - 5, // 10: draiosproto.AccountFeature.created_at:type_name -> google.protobuf.Timestamp - 11, // [11:11] is the sub-list for method output_type - 11, // [11:11] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + +// Deprecated: Use FeatureComponents.ProtoReflect.Descriptor instead. +func (*FeatureComponents) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{3} } -func init() { file_cloud_account_proto_init() } -func file_cloud_account_proto_init() { - if File_cloud_account_proto != nil { - return +func (x *FeatureComponents) GetCloudConnector() *AccountComponent { + if x != nil { + return x.CloudConnector } - if !protoimpl.UnsafeEnabled { - file_cloud_account_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CloudAccount); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_cloud_account_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountFeatures); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_cloud_account_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountFeature); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } + return nil +} + +func (x *FeatureComponents) GetEventBridge() *AccountComponent { + if x != nil { + return x.EventBridge + } + return nil +} + +func (x *FeatureComponents) GetTrustedRole() *AccountComponent { + if x != nil { + return x.TrustedRole + } + return nil +} + +func (x *FeatureComponents) GetServicePrincipal() *AccountComponent { + if x != nil { + return x.ServicePrincipal + } + return nil +} + +func (x *FeatureComponents) GetWebhookDatasource() *AccountComponent { + if x != nil { + return x.WebhookDatasource + } + return nil +} + +func (x *FeatureComponents) GetCryptoKey() *AccountComponent { + if x != nil { + return x.CryptoKey + } + return nil +} + +func (x *FeatureComponents) GetCloudLogs() *AccountComponent { + if x != nil { + return x.CloudLogs + } + return nil +} + +// AccountComponent captures resourced deployed to a cloud +type AccountComponent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type Component `protobuf:"varint,1,opt,name=type,proto3,enum=draiosproto.Component" json:"type,omitempty"` + Instance string `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + ValidatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=validated_at,json=validatedAt,proto3" json:"validated_at,omitempty"` + // Types that are assignable to Metadata: + // + // *AccountComponent_CloudConnectorMetadata + // *AccountComponent_TrustedRoleMetadata + // *AccountComponent_EventBridgeMetadata + // *AccountComponent_ServicePrincipalMetadata + // *AccountComponent_WebhookDatasourceMetadata + // *AccountComponent_CryptoKeyMetadata + // *AccountComponent_CloudLogsMetadata + Metadata isAccountComponent_Metadata `protobuf_oneof:"metadata"` +} + +func (x *AccountComponent) Reset() { + *x = AccountComponent{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountComponent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountComponent) ProtoMessage() {} + +func (x *AccountComponent) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) } + return ms } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_cloud_account_proto_rawDesc, - NumEnums: 2, - NumMessages: 3, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_cloud_account_proto_goTypes, - DependencyIndexes: file_cloud_account_proto_depIdxs, - EnumInfos: file_cloud_account_proto_enumTypes, - MessageInfos: file_cloud_account_proto_msgTypes, - }.Build() - File_cloud_account_proto = out.File - file_cloud_account_proto_rawDesc = nil - file_cloud_account_proto_goTypes = nil - file_cloud_account_proto_depIdxs = nil -} \ No newline at end of file + return mi.MessageOf(x) +} + +// Deprecated: Use AccountComponent.ProtoReflect.Descriptor instead. +func (*AccountComponent) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{4} +} + +func (x *AccountComponent) GetType() Component { + if x != nil { + return x.Type + } + return Component_COMPONENT_UNSPECIFIED +} + +func (x *AccountComponent) GetInstance() string { + if x != nil { + return x.Instance + } + return "" +} + +func (x *AccountComponent) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *AccountComponent) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *AccountComponent) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +func (x *AccountComponent) GetValidatedAt() *timestamppb.Timestamp { + if x != nil { + return x.ValidatedAt + } + return nil +} + +func (m *AccountComponent) GetMetadata() isAccountComponent_Metadata { + if m != nil { + return m.Metadata + } + return nil +} + +func (x *AccountComponent) GetCloudConnectorMetadata() *CloudConnectorMetadata { + if x, ok := x.GetMetadata().(*AccountComponent_CloudConnectorMetadata); ok { + return x.CloudConnectorMetadata + } + return nil +} + +func (x *AccountComponent) GetTrustedRoleMetadata() *TrustedRoleMetadata { + if x, ok := x.GetMetadata().(*AccountComponent_TrustedRoleMetadata); ok { + return x.TrustedRoleMetadata + } + return nil +} + +func (x *AccountComponent) GetEventBridgeMetadata() *EventBridgeMetadata { + if x, ok := x.GetMetadata().(*AccountComponent_EventBridgeMetadata); ok { + return x.EventBridgeMetadata + } + return nil +} + +func (x *AccountComponent) GetServicePrincipalMetadata() *ServicePrincipalMetadata { + if x, ok := x.GetMetadata().(*AccountComponent_ServicePrincipalMetadata); ok { + return x.ServicePrincipalMetadata + } + return nil +} + +func (x *AccountComponent) GetWebhookDatasourceMetadata() *WebhookDatasourceMetadata { + if x, ok := x.GetMetadata().(*AccountComponent_WebhookDatasourceMetadata); ok { + return x.WebhookDatasourceMetadata + } + return nil +} + +func (x *AccountComponent) GetCryptoKeyMetadata() *CryptoKeyMetadata { + if x, ok := x.GetMetadata().(*AccountComponent_CryptoKeyMetadata); ok { + return x.CryptoKeyMetadata + } + return nil +} + +func (x *AccountComponent) GetCloudLogsMetadata() *CloudLogsMetadata { + if x, ok := x.GetMetadata().(*AccountComponent_CloudLogsMetadata); ok { + return x.CloudLogsMetadata + } + return nil +} + +type isAccountComponent_Metadata interface { + isAccountComponent_Metadata() +} + +type AccountComponent_CloudConnectorMetadata struct { + CloudConnectorMetadata *CloudConnectorMetadata `protobuf:"bytes,10,opt,name=cloud_connector_metadata,json=cloudConnectorMetadata,proto3,oneof"` +} + +type AccountComponent_TrustedRoleMetadata struct { + TrustedRoleMetadata *TrustedRoleMetadata `protobuf:"bytes,11,opt,name=trusted_role_metadata,json=trustedRoleMetadata,proto3,oneof"` +} + +type AccountComponent_EventBridgeMetadata struct { + EventBridgeMetadata *EventBridgeMetadata `protobuf:"bytes,12,opt,name=event_bridge_metadata,json=eventBridgeMetadata,proto3,oneof"` +} + +type AccountComponent_ServicePrincipalMetadata struct { + ServicePrincipalMetadata *ServicePrincipalMetadata `protobuf:"bytes,13,opt,name=service_principal_metadata,json=servicePrincipalMetadata,proto3,oneof"` +} + +type AccountComponent_WebhookDatasourceMetadata struct { + WebhookDatasourceMetadata *WebhookDatasourceMetadata `protobuf:"bytes,14,opt,name=webhook_datasource_metadata,json=webhookDatasourceMetadata,proto3,oneof"` +} + +type AccountComponent_CryptoKeyMetadata struct { + CryptoKeyMetadata *CryptoKeyMetadata `protobuf:"bytes,15,opt,name=crypto_key_metadata,json=cryptoKeyMetadata,proto3,oneof"` +} + +type AccountComponent_CloudLogsMetadata struct { + CloudLogsMetadata *CloudLogsMetadata `protobuf:"bytes,16,opt,name=cloud_logs_metadata,json=cloudLogsMetadata,proto3,oneof"` +} + +func (*AccountComponent_CloudConnectorMetadata) isAccountComponent_Metadata() {} + +func (*AccountComponent_TrustedRoleMetadata) isAccountComponent_Metadata() {} + +func (*AccountComponent_EventBridgeMetadata) isAccountComponent_Metadata() {} + +func (*AccountComponent_ServicePrincipalMetadata) isAccountComponent_Metadata() {} + +func (*AccountComponent_WebhookDatasourceMetadata) isAccountComponent_Metadata() {} + +func (*AccountComponent_CryptoKeyMetadata) isAccountComponent_Metadata() {} + +func (*AccountComponent_CloudLogsMetadata) isAccountComponent_Metadata() {} + +// CloudConnectorMetadata captures the metadata associated with a cloud connector deployment, segmented by provider type +type CloudConnectorMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Provider: + // + // *CloudConnectorMetadata_Aws + // *CloudConnectorMetadata_Azure_ + // *CloudConnectorMetadata_Gcp + Provider isCloudConnectorMetadata_Provider `protobuf_oneof:"provider"` +} + +func (x *CloudConnectorMetadata) Reset() { + *x = CloudConnectorMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudConnectorMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudConnectorMetadata) ProtoMessage() {} + +func (x *CloudConnectorMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CloudConnectorMetadata.ProtoReflect.Descriptor instead. +func (*CloudConnectorMetadata) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{5} +} + +func (m *CloudConnectorMetadata) GetProvider() isCloudConnectorMetadata_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *CloudConnectorMetadata) GetAws() *CloudConnectorMetadata_AWS { + if x, ok := x.GetProvider().(*CloudConnectorMetadata_Aws); ok { + return x.Aws + } + return nil +} + +func (x *CloudConnectorMetadata) GetAzure() *CloudConnectorMetadata_Azure { + if x, ok := x.GetProvider().(*CloudConnectorMetadata_Azure_); ok { + return x.Azure + } + return nil +} + +func (x *CloudConnectorMetadata) GetGcp() *CloudConnectorMetadata_GCP { + if x, ok := x.GetProvider().(*CloudConnectorMetadata_Gcp); ok { + return x.Gcp + } + return nil +} + +type isCloudConnectorMetadata_Provider interface { + isCloudConnectorMetadata_Provider() +} + +type CloudConnectorMetadata_Aws struct { + Aws *CloudConnectorMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` +} + +type CloudConnectorMetadata_Azure_ struct { + Azure *CloudConnectorMetadata_Azure `protobuf:"bytes,2,opt,name=azure,proto3,oneof"` +} + +type CloudConnectorMetadata_Gcp struct { + Gcp *CloudConnectorMetadata_GCP `protobuf:"bytes,3,opt,name=gcp,proto3,oneof"` +} + +func (*CloudConnectorMetadata_Aws) isCloudConnectorMetadata_Provider() {} + +func (*CloudConnectorMetadata_Azure_) isCloudConnectorMetadata_Provider() {} + +func (*CloudConnectorMetadata_Gcp) isCloudConnectorMetadata_Provider() {} + +// TrustedRoleMetadata captures the metadata associated with a trusted role resource, segmented by provider type +type TrustedRoleMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Provider: + // + // *TrustedRoleMetadata_Aws + // *TrustedRoleMetadata_Azure_ + // *TrustedRoleMetadata_Gcp + Provider isTrustedRoleMetadata_Provider `protobuf_oneof:"provider"` +} + +func (x *TrustedRoleMetadata) Reset() { + *x = TrustedRoleMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrustedRoleMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustedRoleMetadata) ProtoMessage() {} + +func (x *TrustedRoleMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrustedRoleMetadata.ProtoReflect.Descriptor instead. +func (*TrustedRoleMetadata) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{6} +} + +func (m *TrustedRoleMetadata) GetProvider() isTrustedRoleMetadata_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *TrustedRoleMetadata) GetAws() *TrustedRoleMetadata_AWS { + if x, ok := x.GetProvider().(*TrustedRoleMetadata_Aws); ok { + return x.Aws + } + return nil +} + +func (x *TrustedRoleMetadata) GetAzure() *TrustedRoleMetadata_Azure { + if x, ok := x.GetProvider().(*TrustedRoleMetadata_Azure_); ok { + return x.Azure + } + return nil +} + +func (x *TrustedRoleMetadata) GetGcp() *TrustedRoleMetadata_GCP { + if x, ok := x.GetProvider().(*TrustedRoleMetadata_Gcp); ok { + return x.Gcp + } + return nil +} + +type isTrustedRoleMetadata_Provider interface { + isTrustedRoleMetadata_Provider() +} + +type TrustedRoleMetadata_Aws struct { + Aws *TrustedRoleMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` +} + +type TrustedRoleMetadata_Azure_ struct { + Azure *TrustedRoleMetadata_Azure `protobuf:"bytes,2,opt,name=azure,proto3,oneof"` +} + +type TrustedRoleMetadata_Gcp struct { + Gcp *TrustedRoleMetadata_GCP `protobuf:"bytes,3,opt,name=gcp,proto3,oneof"` +} + +func (*TrustedRoleMetadata_Aws) isTrustedRoleMetadata_Provider() {} + +func (*TrustedRoleMetadata_Azure_) isTrustedRoleMetadata_Provider() {} + +func (*TrustedRoleMetadata_Gcp) isTrustedRoleMetadata_Provider() {} + +// EventBridgeMetadata captures the metadata associated with an event bridge, segmented by provider type +type EventBridgeMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Provider: + // + // *EventBridgeMetadata_Aws + Provider isEventBridgeMetadata_Provider `protobuf_oneof:"provider"` +} + +func (x *EventBridgeMetadata) Reset() { + *x = EventBridgeMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventBridgeMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventBridgeMetadata) ProtoMessage() {} + +func (x *EventBridgeMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EventBridgeMetadata.ProtoReflect.Descriptor instead. +func (*EventBridgeMetadata) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{7} +} + +func (m *EventBridgeMetadata) GetProvider() isEventBridgeMetadata_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *EventBridgeMetadata) GetAws() *EventBridgeMetadata_AWS { + if x, ok := x.GetProvider().(*EventBridgeMetadata_Aws); ok { + return x.Aws + } + return nil +} + +type isEventBridgeMetadata_Provider interface { + isEventBridgeMetadata_Provider() +} + +type EventBridgeMetadata_Aws struct { + Aws *EventBridgeMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` +} + +func (*EventBridgeMetadata_Aws) isEventBridgeMetadata_Provider() {} + +// ServicePrincipalMetadata captures the metadata associated with a service principal, segmented by provider type +type ServicePrincipalMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Provider: + // + // *ServicePrincipalMetadata_Gcp + // *ServicePrincipalMetadata_Okta_ + Provider isServicePrincipalMetadata_Provider `protobuf_oneof:"provider"` +} + +func (x *ServicePrincipalMetadata) Reset() { + *x = ServicePrincipalMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicePrincipalMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicePrincipalMetadata) ProtoMessage() {} + +func (x *ServicePrincipalMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServicePrincipalMetadata.ProtoReflect.Descriptor instead. +func (*ServicePrincipalMetadata) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{8} +} + +func (m *ServicePrincipalMetadata) GetProvider() isServicePrincipalMetadata_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *ServicePrincipalMetadata) GetGcp() *ServicePrincipalMetadata_GCP { + if x, ok := x.GetProvider().(*ServicePrincipalMetadata_Gcp); ok { + return x.Gcp + } + return nil +} + +func (x *ServicePrincipalMetadata) GetOkta() *ServicePrincipalMetadata_Okta { + if x, ok := x.GetProvider().(*ServicePrincipalMetadata_Okta_); ok { + return x.Okta + } + return nil +} + +type isServicePrincipalMetadata_Provider interface { + isServicePrincipalMetadata_Provider() +} + +type ServicePrincipalMetadata_Gcp struct { + Gcp *ServicePrincipalMetadata_GCP `protobuf:"bytes,1,opt,name=gcp,proto3,oneof"` +} + +type ServicePrincipalMetadata_Okta_ struct { + Okta *ServicePrincipalMetadata_Okta `protobuf:"bytes,2,opt,name=okta,proto3,oneof"` +} + +func (*ServicePrincipalMetadata_Gcp) isServicePrincipalMetadata_Provider() {} + +func (*ServicePrincipalMetadata_Okta_) isServicePrincipalMetadata_Provider() {} + +// WebhookDatasourceMetadata captures the metadata associated with a webhook integration that forwards data from the customer's premises to us, segmented by provider type +type WebhookDatasourceMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Provider: + // + // *WebhookDatasourceMetadata_Okta_ + // *WebhookDatasourceMetadata_Github_ + Provider isWebhookDatasourceMetadata_Provider `protobuf_oneof:"provider"` +} + +func (x *WebhookDatasourceMetadata) Reset() { + *x = WebhookDatasourceMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookDatasourceMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookDatasourceMetadata) ProtoMessage() {} + +func (x *WebhookDatasourceMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WebhookDatasourceMetadata.ProtoReflect.Descriptor instead. +func (*WebhookDatasourceMetadata) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{9} +} + +func (m *WebhookDatasourceMetadata) GetProvider() isWebhookDatasourceMetadata_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *WebhookDatasourceMetadata) GetOkta() *WebhookDatasourceMetadata_Okta { + if x, ok := x.GetProvider().(*WebhookDatasourceMetadata_Okta_); ok { + return x.Okta + } + return nil +} + +func (x *WebhookDatasourceMetadata) GetGithub() *WebhookDatasourceMetadata_Github { + if x, ok := x.GetProvider().(*WebhookDatasourceMetadata_Github_); ok { + return x.Github + } + return nil +} + +type isWebhookDatasourceMetadata_Provider interface { + isWebhookDatasourceMetadata_Provider() +} + +type WebhookDatasourceMetadata_Okta_ struct { + Okta *WebhookDatasourceMetadata_Okta `protobuf:"bytes,1,opt,name=okta,proto3,oneof"` +} + +type WebhookDatasourceMetadata_Github_ struct { + Github *WebhookDatasourceMetadata_Github `protobuf:"bytes,2,opt,name=github,proto3,oneof"` +} + +func (*WebhookDatasourceMetadata_Okta_) isWebhookDatasourceMetadata_Provider() {} + +func (*WebhookDatasourceMetadata_Github_) isWebhookDatasourceMetadata_Provider() {} + +// CryptoKeyMetadata captures the metadata associated with a KMS Key +type CryptoKeyMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Provider: + // + // *CryptoKeyMetadata_Aws + Provider isCryptoKeyMetadata_Provider `protobuf_oneof:"provider"` +} + +func (x *CryptoKeyMetadata) Reset() { + *x = CryptoKeyMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CryptoKeyMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CryptoKeyMetadata) ProtoMessage() {} + +func (x *CryptoKeyMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CryptoKeyMetadata.ProtoReflect.Descriptor instead. +func (*CryptoKeyMetadata) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{10} +} + +func (m *CryptoKeyMetadata) GetProvider() isCryptoKeyMetadata_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *CryptoKeyMetadata) GetAws() *CryptoKeyMetadata_AWS { + if x, ok := x.GetProvider().(*CryptoKeyMetadata_Aws); ok { + return x.Aws + } + return nil +} + +type isCryptoKeyMetadata_Provider interface { + isCryptoKeyMetadata_Provider() +} + +type CryptoKeyMetadata_Aws struct { + Aws *CryptoKeyMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` +} + +func (*CryptoKeyMetadata_Aws) isCryptoKeyMetadata_Provider() {} + +// CloudLogsMetadata captures the metadata associated cloud logs component +type CloudLogsMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Provider: + // + // *CloudLogsMetadata_Aws + Provider isCloudLogsMetadata_Provider `protobuf_oneof:"provider"` +} + +func (x *CloudLogsMetadata) Reset() { + *x = CloudLogsMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudLogsMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudLogsMetadata) ProtoMessage() {} + +func (x *CloudLogsMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CloudLogsMetadata.ProtoReflect.Descriptor instead. +func (*CloudLogsMetadata) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{11} +} + +func (m *CloudLogsMetadata) GetProvider() isCloudLogsMetadata_Provider { + if m != nil { + return m.Provider + } + return nil +} + +func (x *CloudLogsMetadata) GetAws() *CloudLogsMetadata_AWS { + if x, ok := x.GetProvider().(*CloudLogsMetadata_Aws); ok { + return x.Aws + } + return nil +} + +type isCloudLogsMetadata_Provider interface { + isCloudLogsMetadata_Provider() +} + +type CloudLogsMetadata_Aws struct { + Aws *CloudLogsMetadata_AWS `protobuf:"bytes,1,opt,name=aws,proto3,oneof"` +} + +func (*CloudLogsMetadata_Aws) isCloudLogsMetadata_Provider() {} + +type CloudConnectorMetadata_AWS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CloudConnectorMetadata_AWS) Reset() { + *x = CloudConnectorMetadata_AWS{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudConnectorMetadata_AWS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudConnectorMetadata_AWS) ProtoMessage() {} + +func (x *CloudConnectorMetadata_AWS) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CloudConnectorMetadata_AWS.ProtoReflect.Descriptor instead. +func (*CloudConnectorMetadata_AWS) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{5, 0} +} + +type CloudConnectorMetadata_Azure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CloudConnectorMetadata_Azure) Reset() { + *x = CloudConnectorMetadata_Azure{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudConnectorMetadata_Azure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudConnectorMetadata_Azure) ProtoMessage() {} + +func (x *CloudConnectorMetadata_Azure) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CloudConnectorMetadata_Azure.ProtoReflect.Descriptor instead. +func (*CloudConnectorMetadata_Azure) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{5, 1} +} + +type CloudConnectorMetadata_GCP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CloudConnectorMetadata_GCP) Reset() { + *x = CloudConnectorMetadata_GCP{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudConnectorMetadata_GCP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudConnectorMetadata_GCP) ProtoMessage() {} + +func (x *CloudConnectorMetadata_GCP) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CloudConnectorMetadata_GCP.ProtoReflect.Descriptor instead. +func (*CloudConnectorMetadata_GCP) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{5, 2} +} + +type TrustedRoleMetadata_AWS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoleName string `protobuf:"bytes,1,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` +} + +func (x *TrustedRoleMetadata_AWS) Reset() { + *x = TrustedRoleMetadata_AWS{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrustedRoleMetadata_AWS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustedRoleMetadata_AWS) ProtoMessage() {} + +func (x *TrustedRoleMetadata_AWS) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrustedRoleMetadata_AWS.ProtoReflect.Descriptor instead. +func (*TrustedRoleMetadata_AWS) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *TrustedRoleMetadata_AWS) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +type TrustedRoleMetadata_GCP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoleName string `protobuf:"bytes,1,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` +} + +func (x *TrustedRoleMetadata_GCP) Reset() { + *x = TrustedRoleMetadata_GCP{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrustedRoleMetadata_GCP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustedRoleMetadata_GCP) ProtoMessage() {} + +func (x *TrustedRoleMetadata_GCP) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[16] + 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 TrustedRoleMetadata_GCP.ProtoReflect.Descriptor instead. +func (*TrustedRoleMetadata_GCP) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{6, 1} +} + +func (x *TrustedRoleMetadata_GCP) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +type TrustedRoleMetadata_Azure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoleName string `protobuf:"bytes,1,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` +} + +func (x *TrustedRoleMetadata_Azure) Reset() { + *x = TrustedRoleMetadata_Azure{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TrustedRoleMetadata_Azure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustedRoleMetadata_Azure) ProtoMessage() {} + +func (x *TrustedRoleMetadata_Azure) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[17] + 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 TrustedRoleMetadata_Azure.ProtoReflect.Descriptor instead. +func (*TrustedRoleMetadata_Azure) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{6, 2} +} + +func (x *TrustedRoleMetadata_Azure) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +type EventBridgeMetadata_AWS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoleName string `protobuf:"bytes,1,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + RuleName string `protobuf:"bytes,2,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` +} + +func (x *EventBridgeMetadata_AWS) Reset() { + *x = EventBridgeMetadata_AWS{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventBridgeMetadata_AWS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventBridgeMetadata_AWS) ProtoMessage() {} + +func (x *EventBridgeMetadata_AWS) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[18] + 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 EventBridgeMetadata_AWS.ProtoReflect.Descriptor instead. +func (*EventBridgeMetadata_AWS) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *EventBridgeMetadata_AWS) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +func (x *EventBridgeMetadata_AWS) GetRuleName() string { + if x != nil { + return x.RuleName + } + return "" +} + +type ServicePrincipalMetadata_GCP struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key *ServicePrincipalMetadata_GCP_Key `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *ServicePrincipalMetadata_GCP) Reset() { + *x = ServicePrincipalMetadata_GCP{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicePrincipalMetadata_GCP) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicePrincipalMetadata_GCP) ProtoMessage() {} + +func (x *ServicePrincipalMetadata_GCP) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServicePrincipalMetadata_GCP.ProtoReflect.Descriptor instead. +func (*ServicePrincipalMetadata_GCP) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *ServicePrincipalMetadata_GCP) GetKey() *ServicePrincipalMetadata_GCP_Key { + if x != nil { + return x.Key + } + return nil +} + +type ServicePrincipalMetadata_Okta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OauthApp *ServicePrincipalMetadata_Okta_OAuthApp `protobuf:"bytes,1,opt,name=oauth_app,json=oauthApp,proto3" json:"oauth_app,omitempty"` +} + +func (x *ServicePrincipalMetadata_Okta) Reset() { + *x = ServicePrincipalMetadata_Okta{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicePrincipalMetadata_Okta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicePrincipalMetadata_Okta) ProtoMessage() {} + +func (x *ServicePrincipalMetadata_Okta) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServicePrincipalMetadata_Okta.ProtoReflect.Descriptor instead. +func (*ServicePrincipalMetadata_Okta) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{8, 1} +} + +func (x *ServicePrincipalMetadata_Okta) GetOauthApp() *ServicePrincipalMetadata_Okta_OAuthApp { + if x != nil { + return x.OauthApp + } + return nil +} + +type ServicePrincipalMetadata_GCP_Key struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + PrivateKeyId string `protobuf:"bytes,3,opt,name=private_key_id,json=privateKeyId,proto3" json:"private_key_id,omitempty"` + PrivateKey string `protobuf:"bytes,4,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` + ClientEmail string `protobuf:"bytes,5,opt,name=client_email,json=clientEmail,proto3" json:"client_email,omitempty"` + ClientId string `protobuf:"bytes,6,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + AuthUri string `protobuf:"bytes,7,opt,name=auth_uri,json=authUri,proto3" json:"auth_uri,omitempty"` + TokenUri string `protobuf:"bytes,8,opt,name=token_uri,json=tokenUri,proto3" json:"token_uri,omitempty"` + AuthProviderX509CertUrl string `protobuf:"bytes,9,opt,name=auth_provider_x509_cert_url,json=authProviderX509CertUrl,proto3" json:"auth_provider_x509_cert_url,omitempty"` + ClientX509CertUrl string `protobuf:"bytes,10,opt,name=client_x509_cert_url,json=clientX509CertUrl,proto3" json:"client_x509_cert_url,omitempty"` +} + +func (x *ServicePrincipalMetadata_GCP_Key) Reset() { + *x = ServicePrincipalMetadata_GCP_Key{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicePrincipalMetadata_GCP_Key) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicePrincipalMetadata_GCP_Key) ProtoMessage() {} + +func (x *ServicePrincipalMetadata_GCP_Key) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServicePrincipalMetadata_GCP_Key.ProtoReflect.Descriptor instead. +func (*ServicePrincipalMetadata_GCP_Key) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{8, 0, 0} +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetPrivateKeyId() string { + if x != nil { + return x.PrivateKeyId + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetPrivateKey() string { + if x != nil { + return x.PrivateKey + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetClientEmail() string { + if x != nil { + return x.ClientEmail + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetAuthUri() string { + if x != nil { + return x.AuthUri + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetTokenUri() string { + if x != nil { + return x.TokenUri + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetAuthProviderX509CertUrl() string { + if x != nil { + return x.AuthProviderX509CertUrl + } + return "" +} + +func (x *ServicePrincipalMetadata_GCP_Key) GetClientX509CertUrl() string { + if x != nil { + return x.ClientX509CertUrl + } + return "" +} + +type ServicePrincipalMetadata_Okta_OAuthApp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IngestionId string `protobuf:"bytes,1,opt,name=ingestion_id,json=ingestionId,proto3" json:"ingestion_id,omitempty"` + OktaUrl string `protobuf:"bytes,2,opt,name=okta_url,json=oktaUrl,proto3" json:"okta_url,omitempty"` + ClientId string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + ClientSecret string `protobuf:"bytes,4,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` +} + +func (x *ServicePrincipalMetadata_Okta_OAuthApp) Reset() { + *x = ServicePrincipalMetadata_Okta_OAuthApp{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServicePrincipalMetadata_Okta_OAuthApp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServicePrincipalMetadata_Okta_OAuthApp) ProtoMessage() {} + +func (x *ServicePrincipalMetadata_Okta_OAuthApp) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServicePrincipalMetadata_Okta_OAuthApp.ProtoReflect.Descriptor instead. +func (*ServicePrincipalMetadata_Okta_OAuthApp) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{8, 1, 0} +} + +func (x *ServicePrincipalMetadata_Okta_OAuthApp) GetIngestionId() string { + if x != nil { + return x.IngestionId + } + return "" +} + +func (x *ServicePrincipalMetadata_Okta_OAuthApp) GetOktaUrl() string { + if x != nil { + return x.OktaUrl + } + return "" +} + +func (x *ServicePrincipalMetadata_Okta_OAuthApp) GetClientId() string { + if x != nil { + return x.ClientId + } + return "" +} + +func (x *ServicePrincipalMetadata_Okta_OAuthApp) GetClientSecret() string { + if x != nil { + return x.ClientSecret + } + return "" +} + +type WebhookDatasourceMetadata_Okta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebhookDatasource *WebhookDatasourceMetadata_Okta_WebhookDatasource `protobuf:"bytes,1,opt,name=webhook_datasource,json=webhookDatasource,proto3" json:"webhook_datasource,omitempty"` +} + +func (x *WebhookDatasourceMetadata_Okta) Reset() { + *x = WebhookDatasourceMetadata_Okta{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookDatasourceMetadata_Okta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookDatasourceMetadata_Okta) ProtoMessage() {} + +func (x *WebhookDatasourceMetadata_Okta) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[23] + 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_Okta.ProtoReflect.Descriptor instead. +func (*WebhookDatasourceMetadata_Okta) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *WebhookDatasourceMetadata_Okta) GetWebhookDatasource() *WebhookDatasourceMetadata_Okta_WebhookDatasource { + if x != nil { + return x.WebhookDatasource + } + return nil +} + +type WebhookDatasourceMetadata_Github struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WebhookDatasource *WebhookDatasourceMetadata_Github_WebhookDatasource `protobuf:"bytes,1,opt,name=webhook_datasource,json=webhookDatasource,proto3" json:"webhook_datasource,omitempty"` +} + +func (x *WebhookDatasourceMetadata_Github) Reset() { + *x = WebhookDatasourceMetadata_Github{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookDatasourceMetadata_Github) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookDatasourceMetadata_Github) ProtoMessage() {} + +func (x *WebhookDatasourceMetadata_Github) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[24] + 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_Github.ProtoReflect.Descriptor instead. +func (*WebhookDatasourceMetadata_Github) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{9, 1} +} + +func (x *WebhookDatasourceMetadata_Github) GetWebhookDatasource() *WebhookDatasourceMetadata_Github_WebhookDatasource { + if x != nil { + return x.WebhookDatasource + } + return nil +} + +type WebhookDatasourceMetadata_Okta_WebhookDatasource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HookId string `protobuf:"bytes,1,opt,name=hook_id,json=hookId,proto3" json:"hook_id,omitempty"` + IngestionId string `protobuf:"bytes,2,opt,name=ingestion_id,json=ingestionId,proto3" json:"ingestion_id,omitempty"` + IngestionUrl string `protobuf:"bytes,3,opt,name=ingestion_url,json=ingestionUrl,proto3" json:"ingestion_url,omitempty"` + OktaEventTypes []string `protobuf:"bytes,4,rep,name=okta_event_types,json=oktaEventTypes,proto3" json:"okta_event_types,omitempty"` +} + +func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) Reset() { + *x = WebhookDatasourceMetadata_Okta_WebhookDatasource{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookDatasourceMetadata_Okta_WebhookDatasource) ProtoMessage() {} + +func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[25] + 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_Okta_WebhookDatasource.ProtoReflect.Descriptor instead. +func (*WebhookDatasourceMetadata_Okta_WebhookDatasource) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{9, 0, 0} +} + +func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) GetHookId() string { + if x != nil { + return x.HookId + } + return "" +} + +func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) GetIngestionId() string { + if x != nil { + return x.IngestionId + } + return "" +} + +func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) GetIngestionUrl() string { + if x != nil { + return x.IngestionUrl + } + return "" +} + +func (x *WebhookDatasourceMetadata_Okta_WebhookDatasource) GetOktaEventTypes() []string { + if x != nil { + return x.OktaEventTypes + } + return nil +} + +type WebhookDatasourceMetadata_Github_WebhookDatasource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HookId int64 `protobuf:"varint,1,opt,name=hook_id,json=hookId,proto3" json:"hook_id,omitempty"` + IngestionId string `protobuf:"bytes,2,opt,name=ingestion_id,json=ingestionId,proto3" json:"ingestion_id,omitempty"` + IngestionUrl string `protobuf:"bytes,3,opt,name=ingestion_url,json=ingestionUrl,proto3" json:"ingestion_url,omitempty"` + GithubInstallationId int64 `protobuf:"varint,4,opt,name=github_installation_id,json=githubInstallationId,proto3" json:"github_installation_id,omitempty"` +} + +func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) Reset() { + *x = WebhookDatasourceMetadata_Github_WebhookDatasource{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookDatasourceMetadata_Github_WebhookDatasource) ProtoMessage() {} + +func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[26] + 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_Github_WebhookDatasource.ProtoReflect.Descriptor instead. +func (*WebhookDatasourceMetadata_Github_WebhookDatasource) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{9, 1, 0} +} + +func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) GetHookId() int64 { + if x != nil { + return x.HookId + } + return 0 +} + +func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) GetIngestionId() string { + if x != nil { + return x.IngestionId + } + return "" +} + +func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) GetIngestionUrl() string { + if x != nil { + return x.IngestionUrl + } + return "" +} + +func (x *WebhookDatasourceMetadata_Github_WebhookDatasource) GetGithubInstallationId() int64 { + if x != nil { + return x.GithubInstallationId + } + return 0 +} + +type CryptoKeyMetadata_AWS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Kms *CryptoKeyMetadata_AWS_KMS `protobuf:"bytes,1,opt,name=kms,proto3" json:"kms,omitempty"` +} + +func (x *CryptoKeyMetadata_AWS) Reset() { + *x = CryptoKeyMetadata_AWS{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CryptoKeyMetadata_AWS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CryptoKeyMetadata_AWS) ProtoMessage() {} + +func (x *CryptoKeyMetadata_AWS) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[27] + 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 CryptoKeyMetadata_AWS.ProtoReflect.Descriptor instead. +func (*CryptoKeyMetadata_AWS) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{10, 0} +} + +func (x *CryptoKeyMetadata_AWS) GetKms() *CryptoKeyMetadata_AWS_KMS { + if x != nil { + return x.Kms + } + return nil +} + +type CryptoKeyMetadata_AWS_KMS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Alias string `protobuf:"bytes,1,opt,name=alias,proto3" json:"alias,omitempty"` + Regions []string `protobuf:"bytes,2,rep,name=regions,proto3" json:"regions,omitempty"` +} + +func (x *CryptoKeyMetadata_AWS_KMS) Reset() { + *x = CryptoKeyMetadata_AWS_KMS{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CryptoKeyMetadata_AWS_KMS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CryptoKeyMetadata_AWS_KMS) ProtoMessage() {} + +func (x *CryptoKeyMetadata_AWS_KMS) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[28] + 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 CryptoKeyMetadata_AWS_KMS.ProtoReflect.Descriptor instead. +func (*CryptoKeyMetadata_AWS_KMS) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{10, 0, 0} +} + +func (x *CryptoKeyMetadata_AWS_KMS) GetAlias() string { + if x != nil { + return x.Alias + } + return "" +} + +func (x *CryptoKeyMetadata_AWS_KMS) GetRegions() []string { + if x != nil { + return x.Regions + } + return nil +} + +type CloudLogsMetadata_AWS struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CloudtrailS3Bucket *CloudLogsMetadata_AWS_CloudTrailS3Bucket `protobuf:"bytes,1,opt,name=cloudtrail_s3_bucket,json=cloudtrailS3Bucket,proto3" json:"cloudtrail_s3_bucket,omitempty"` +} + +func (x *CloudLogsMetadata_AWS) Reset() { + *x = CloudLogsMetadata_AWS{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudLogsMetadata_AWS) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudLogsMetadata_AWS) ProtoMessage() {} + +func (x *CloudLogsMetadata_AWS) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[29] + 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 CloudLogsMetadata_AWS.ProtoReflect.Descriptor instead. +func (*CloudLogsMetadata_AWS) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{11, 0} +} + +func (x *CloudLogsMetadata_AWS) GetCloudtrailS3Bucket() *CloudLogsMetadata_AWS_CloudTrailS3Bucket { + if x != nil { + return x.CloudtrailS3Bucket + } + return nil +} + +type CloudLogsMetadata_AWS_CloudTrailS3Bucket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BucketArn string `protobuf:"bytes,1,opt,name=bucket_arn,json=bucketArn,proto3" json:"bucket_arn,omitempty"` + Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` + ExternalId string `protobuf:"bytes,3,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` + RoleName string `protobuf:"bytes,4,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + PathPrefix string `protobuf:"bytes,5,opt,name=path_prefix,json=pathPrefix,proto3" json:"path_prefix,omitempty"` +} + +func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) Reset() { + *x = CloudLogsMetadata_AWS_CloudTrailS3Bucket{} + if protoimpl.UnsafeEnabled { + mi := &file_cloud_account_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloudLogsMetadata_AWS_CloudTrailS3Bucket) ProtoMessage() {} + +func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) ProtoReflect() protoreflect.Message { + mi := &file_cloud_account_proto_msgTypes[30] + 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 CloudLogsMetadata_AWS_CloudTrailS3Bucket.ProtoReflect.Descriptor instead. +func (*CloudLogsMetadata_AWS_CloudTrailS3Bucket) Descriptor() ([]byte, []int) { + return file_cloud_account_proto_rawDescGZIP(), []int{11, 0, 0} +} + +func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetBucketArn() string { + if x != nil { + return x.BucketArn + } + return "" +} + +func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetRegion() string { + if x != nil { + return x.Region + } + return "" +} + +func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetExternalId() string { + if x != nil { + return x.ExternalId + } + return "" +} + +func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +func (x *CloudLogsMetadata_AWS_CloudTrailS3Bucket) GetPathPrefix() string { + if x != nil { + return x.PathPrefix + } + return "" +} + +var file_cloud_account_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 50001, + Name: "draiosproto.encryption", + Tag: "bytes,50001,opt,name=encryption", + Filename: "cloud_account.proto", + }, +} + +// Extension fields to descriptorpb.FieldOptions. +var ( + // optional string encryption = 50001; + E_Encryption = &file_cloud_account_proto_extTypes[0] +) + +var File_cloud_account_proto protoreflect.FileDescriptor + +var file_cloud_account_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x98, 0x04, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, + 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x72, 0x61, + 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x72, + 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x22, 0xbe, 0x03, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x17, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x52, 0x15, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, + 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x15, 0x73, 0x65, 0x63, + 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, + 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x50, 0x6f, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x5b, 0x0a, 0x1b, 0x73, 0x65, + 0x63, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x19, 0x73, 0x65, + 0x63, 0x75, 0x72, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x15, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x13, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x57, 0x0a, 0x19, 0x73, 0x65, 0x63, 0x75, + 0x72, 0x65, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x63, 0x61, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x72, + 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x6c, 0x65, 0x73, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x22, 0xcd, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x73, 0x22, 0x99, 0x05, 0x0a, 0x11, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x72, 0x61, + 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0b, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x48, 0x02, 0x52, 0x0b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, + 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x03, 0x52, 0x10, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x04, + 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x72, 0x61, + 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x05, 0x52, 0x09, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x09, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, + 0x6c, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, + 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x77, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0xc1, 0x07, + 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x5f, 0x0a, 0x18, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x72, + 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x56, 0x0a, 0x15, 0x74, 0x72, + 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x72, 0x61, 0x69, + 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x56, 0x0a, 0x15, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x65, 0x0a, 0x1a, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x18, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x68, 0x0a, 0x1b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 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, 0x48, 0x00, + 0x52, 0x19, 0x77, 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, 0x50, 0x0a, 0x13, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 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, 0x48, 0x00, 0x52, 0x11, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x50, 0x0a, + 0x13, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 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, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x0a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x07, 0x10, + 0x08, 0x22, 0xf8, 0x01, 0x0a, 0x16, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x03, + 0x61, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x72, 0x61, 0x69, + 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, + 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, + 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x7a, + 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x03, + 0x67, 0x63, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x64, 0x72, 0x61, 0x69, + 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, + 0x43, 0x50, 0x48, 0x00, 0x52, 0x03, 0x67, 0x63, 0x70, 0x1a, 0x05, 0x0a, 0x03, 0x41, 0x57, 0x53, + 0x1a, 0x07, 0x0a, 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x1a, 0x05, 0x0a, 0x03, 0x47, 0x43, 0x50, + 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xc3, 0x02, 0x0a, + 0x13, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 0x12, 0x3e, + 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x75, 0x73, + 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x38, + 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x72, + 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, + 0x50, 0x48, 0x00, 0x52, 0x03, 0x67, 0x63, 0x70, 0x1a, 0x22, 0x0a, 0x03, 0x41, 0x57, 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, 0x1a, 0x22, 0x0a, 0x03, + 0x47, 0x43, 0x50, 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, + 0x1a, 0x24, 0x0a, 0x05, 0x41, 0x7a, 0x75, 0x72, 0x65, 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, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x13, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x03, 0x61, 0x77, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x57, 0x53, 0x48, 0x00, 0x52, + 0x03, 0x61, 0x77, 0x73, 0x1a, 0x3f, 0x0a, 0x03, 0x41, 0x57, 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, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x22, 0x81, 0x07, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, + 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, + 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x72, + 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x48, 0x00, 0x52, 0x03, 0x67, 0x63, 0x70, 0x12, 0x40, 0x0a, + 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x64, 0x72, + 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x1a, + 0xcf, 0x03, 0x0a, 0x03, 0x47, 0x43, 0x50, 0x12, 0x3f, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, + 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x43, 0x50, 0x2e, + 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x86, 0x03, 0x0a, 0x03, 0x4b, 0x65, 0x79, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, + 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0c, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0b, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, + 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0a, + 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, + 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, + 0x74, 0x68, 0x55, 0x72, 0x69, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, + 0x72, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, + 0x72, 0x69, 0x12, 0x3c, 0x0a, 0x1b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x6c, + 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x78, 0x35, 0x30, 0x39, 0x5f, + 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58, 0x35, 0x30, 0x39, 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, + 0x6c, 0x1a, 0x85, 0x02, 0x0a, 0x04, 0x4f, 0x6b, 0x74, 0x61, 0x12, 0x50, 0x0a, 0x09, 0x6f, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, + 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, + 0x70, 0x70, 0x52, 0x08, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x1a, 0xaa, 0x01, 0x0a, + 0x08, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x41, 0x70, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x6b, 0x74, 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x6b, 0x74, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x2b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, 0x0a, + 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0x8a, 0xb5, 0x18, + 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, 0x0c, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xf3, 0x05, 0x0a, 0x19, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x04, 0x6f, 0x6b, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x48, 0x00, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x1a, + 0x95, 0x02, 0x0a, 0x04, 0x4f, 0x6b, 0x74, 0x61, 0x12, 0x6c, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6b, 0x74, + 0x61, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x9e, 0x01, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, + 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, + 0x10, 0x6f, 0x6b, 0x74, 0x61, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6b, 0x74, 0x61, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xa5, 0x02, 0x0a, 0x06, 0x47, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x12, 0x6e, 0x0a, 0x12, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, + 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x57, 0x65, + 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, + 0x11, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x1a, 0xaa, 0x01, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x6f, 0x6b, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x6f, 0x6f, 0x6b, 0x49, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 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, 0x85, 0x03, + 0x0a, 0x11, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x03, 0x61, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x41, 0x57, 0x53, 0x48, 0x00, 0x52, 0x03, 0x61, 0x77, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x03, + 0x41, 0x57, 0x53, 0x12, 0x67, 0x0a, 0x14, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x72, 0x61, 0x69, + 0x6c, 0x5f, 0x73, 0x33, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x64, 0x72, 0x61, 0x69, 0x6f, 0x73, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x41, 0x57, 0x53, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x72, 0x61, 0x69, 0x6c, + 0x53, 0x33, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x12, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, + 0x72, 0x61, 0x69, 0x6c, 0x53, 0x33, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0xba, 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, 0x2f, 0x0a, 0x0b, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0e, 0x8a, 0xb5, 0x18, 0x0a, 0x41, 0x45, 0x53, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x52, + 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 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, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x2a, 0x84, 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, 0x2a, 0xdd, 0x01, 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, 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 ( + file_cloud_account_proto_rawDescOnce sync.Once + file_cloud_account_proto_rawDescData = file_cloud_account_proto_rawDesc +) + +func file_cloud_account_proto_rawDescGZIP() []byte { + file_cloud_account_proto_rawDescOnce.Do(func() { + file_cloud_account_proto_rawDescData = protoimpl.X.CompressGZIP(file_cloud_account_proto_rawDescData) + }) + return file_cloud_account_proto_rawDescData +} + +var file_cloud_account_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_cloud_account_proto_msgTypes = make([]protoimpl.MessageInfo, 31) +var file_cloud_account_proto_goTypes = []interface{}{ + (Provider)(0), // 0: draiosproto.Provider + (Feature)(0), // 1: draiosproto.Feature + (Component)(0), // 2: draiosproto.Component + (*CloudAccount)(nil), // 3: draiosproto.CloudAccount + (*AccountFeatures)(nil), // 4: draiosproto.AccountFeatures + (*AccountFeature)(nil), // 5: draiosproto.AccountFeature + (*FeatureComponents)(nil), // 6: draiosproto.FeatureComponents + (*AccountComponent)(nil), // 7: draiosproto.AccountComponent + (*CloudConnectorMetadata)(nil), // 8: draiosproto.CloudConnectorMetadata + (*TrustedRoleMetadata)(nil), // 9: draiosproto.TrustedRoleMetadata + (*EventBridgeMetadata)(nil), // 10: draiosproto.EventBridgeMetadata + (*ServicePrincipalMetadata)(nil), // 11: draiosproto.ServicePrincipalMetadata + (*WebhookDatasourceMetadata)(nil), // 12: draiosproto.WebhookDatasourceMetadata + (*CryptoKeyMetadata)(nil), // 13: draiosproto.CryptoKeyMetadata + (*CloudLogsMetadata)(nil), // 14: draiosproto.CloudLogsMetadata + (*CloudConnectorMetadata_AWS)(nil), // 15: draiosproto.CloudConnectorMetadata.AWS + (*CloudConnectorMetadata_Azure)(nil), // 16: draiosproto.CloudConnectorMetadata.Azure + (*CloudConnectorMetadata_GCP)(nil), // 17: draiosproto.CloudConnectorMetadata.GCP + (*TrustedRoleMetadata_AWS)(nil), // 18: draiosproto.TrustedRoleMetadata.AWS + (*TrustedRoleMetadata_GCP)(nil), // 19: draiosproto.TrustedRoleMetadata.GCP + (*TrustedRoleMetadata_Azure)(nil), // 20: draiosproto.TrustedRoleMetadata.Azure + (*EventBridgeMetadata_AWS)(nil), // 21: draiosproto.EventBridgeMetadata.AWS + (*ServicePrincipalMetadata_GCP)(nil), // 22: draiosproto.ServicePrincipalMetadata.GCP + (*ServicePrincipalMetadata_Okta)(nil), // 23: draiosproto.ServicePrincipalMetadata.Okta + (*ServicePrincipalMetadata_GCP_Key)(nil), // 24: draiosproto.ServicePrincipalMetadata.GCP.Key + (*ServicePrincipalMetadata_Okta_OAuthApp)(nil), // 25: draiosproto.ServicePrincipalMetadata.Okta.OAuthApp + (*WebhookDatasourceMetadata_Okta)(nil), // 26: draiosproto.WebhookDatasourceMetadata.Okta + (*WebhookDatasourceMetadata_Github)(nil), // 27: draiosproto.WebhookDatasourceMetadata.Github + (*WebhookDatasourceMetadata_Okta_WebhookDatasource)(nil), // 28: draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource + (*WebhookDatasourceMetadata_Github_WebhookDatasource)(nil), // 29: draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource + (*CryptoKeyMetadata_AWS)(nil), // 30: draiosproto.CryptoKeyMetadata.AWS + (*CryptoKeyMetadata_AWS_KMS)(nil), // 31: draiosproto.CryptoKeyMetadata.AWS.KMS + (*CloudLogsMetadata_AWS)(nil), // 32: draiosproto.CloudLogsMetadata.AWS + (*CloudLogsMetadata_AWS_CloudTrailS3Bucket)(nil), // 33: draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket + (*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp + (*descriptorpb.FieldOptions)(nil), // 35: google.protobuf.FieldOptions +} +var file_cloud_account_proto_depIdxs = []int32{ + 0, // 0: draiosproto.CloudAccount.provider:type_name -> draiosproto.Provider + 4, // 1: draiosproto.CloudAccount.feature:type_name -> draiosproto.AccountFeatures + 34, // 2: draiosproto.CloudAccount.created_at:type_name -> google.protobuf.Timestamp + 34, // 3: draiosproto.CloudAccount.updated_at:type_name -> google.protobuf.Timestamp + 7, // 4: draiosproto.CloudAccount.components:type_name -> draiosproto.AccountComponent + 5, // 5: draiosproto.AccountFeatures.secure_threat_detection:type_name -> draiosproto.AccountFeature + 5, // 6: draiosproto.AccountFeatures.secure_config_posture:type_name -> draiosproto.AccountFeature + 5, // 7: draiosproto.AccountFeatures.secure_identity_entitlement:type_name -> draiosproto.AccountFeature + 5, // 8: draiosproto.AccountFeatures.monitor_cloud_metrics:type_name -> draiosproto.AccountFeature + 5, // 9: draiosproto.AccountFeatures.secure_agentless_scanning:type_name -> draiosproto.AccountFeature + 1, // 10: draiosproto.AccountFeature.type:type_name -> draiosproto.Feature + 34, // 11: draiosproto.AccountFeature.created_at:type_name -> google.protobuf.Timestamp + 7, // 12: draiosproto.FeatureComponents.cloud_connector:type_name -> draiosproto.AccountComponent + 7, // 13: draiosproto.FeatureComponents.event_bridge:type_name -> draiosproto.AccountComponent + 7, // 14: draiosproto.FeatureComponents.trusted_role:type_name -> draiosproto.AccountComponent + 7, // 15: draiosproto.FeatureComponents.service_principal:type_name -> draiosproto.AccountComponent + 7, // 16: draiosproto.FeatureComponents.webhook_datasource:type_name -> draiosproto.AccountComponent + 7, // 17: draiosproto.FeatureComponents.crypto_key:type_name -> draiosproto.AccountComponent + 7, // 18: draiosproto.FeatureComponents.cloud_logs:type_name -> draiosproto.AccountComponent + 2, // 19: draiosproto.AccountComponent.type:type_name -> draiosproto.Component + 34, // 20: draiosproto.AccountComponent.created_at:type_name -> google.protobuf.Timestamp + 34, // 21: draiosproto.AccountComponent.updated_at:type_name -> google.protobuf.Timestamp + 34, // 22: draiosproto.AccountComponent.validated_at:type_name -> google.protobuf.Timestamp + 8, // 23: draiosproto.AccountComponent.cloud_connector_metadata:type_name -> draiosproto.CloudConnectorMetadata + 9, // 24: draiosproto.AccountComponent.trusted_role_metadata:type_name -> draiosproto.TrustedRoleMetadata + 10, // 25: draiosproto.AccountComponent.event_bridge_metadata:type_name -> draiosproto.EventBridgeMetadata + 11, // 26: draiosproto.AccountComponent.service_principal_metadata:type_name -> draiosproto.ServicePrincipalMetadata + 12, // 27: draiosproto.AccountComponent.webhook_datasource_metadata:type_name -> draiosproto.WebhookDatasourceMetadata + 13, // 28: draiosproto.AccountComponent.crypto_key_metadata:type_name -> draiosproto.CryptoKeyMetadata + 14, // 29: draiosproto.AccountComponent.cloud_logs_metadata:type_name -> draiosproto.CloudLogsMetadata + 15, // 30: draiosproto.CloudConnectorMetadata.aws:type_name -> draiosproto.CloudConnectorMetadata.AWS + 16, // 31: draiosproto.CloudConnectorMetadata.azure:type_name -> draiosproto.CloudConnectorMetadata.Azure + 17, // 32: draiosproto.CloudConnectorMetadata.gcp:type_name -> draiosproto.CloudConnectorMetadata.GCP + 18, // 33: draiosproto.TrustedRoleMetadata.aws:type_name -> draiosproto.TrustedRoleMetadata.AWS + 20, // 34: draiosproto.TrustedRoleMetadata.azure:type_name -> draiosproto.TrustedRoleMetadata.Azure + 19, // 35: draiosproto.TrustedRoleMetadata.gcp:type_name -> draiosproto.TrustedRoleMetadata.GCP + 21, // 36: draiosproto.EventBridgeMetadata.aws:type_name -> draiosproto.EventBridgeMetadata.AWS + 22, // 37: draiosproto.ServicePrincipalMetadata.gcp:type_name -> draiosproto.ServicePrincipalMetadata.GCP + 23, // 38: draiosproto.ServicePrincipalMetadata.okta:type_name -> draiosproto.ServicePrincipalMetadata.Okta + 26, // 39: draiosproto.WebhookDatasourceMetadata.okta:type_name -> draiosproto.WebhookDatasourceMetadata.Okta + 27, // 40: draiosproto.WebhookDatasourceMetadata.github:type_name -> draiosproto.WebhookDatasourceMetadata.Github + 30, // 41: draiosproto.CryptoKeyMetadata.aws:type_name -> draiosproto.CryptoKeyMetadata.AWS + 32, // 42: draiosproto.CloudLogsMetadata.aws:type_name -> draiosproto.CloudLogsMetadata.AWS + 24, // 43: draiosproto.ServicePrincipalMetadata.GCP.key:type_name -> draiosproto.ServicePrincipalMetadata.GCP.Key + 25, // 44: draiosproto.ServicePrincipalMetadata.Okta.oauth_app:type_name -> draiosproto.ServicePrincipalMetadata.Okta.OAuthApp + 28, // 45: draiosproto.WebhookDatasourceMetadata.Okta.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Okta.WebhookDatasource + 29, // 46: draiosproto.WebhookDatasourceMetadata.Github.webhook_datasource:type_name -> draiosproto.WebhookDatasourceMetadata.Github.WebhookDatasource + 31, // 47: draiosproto.CryptoKeyMetadata.AWS.kms:type_name -> draiosproto.CryptoKeyMetadata.AWS.KMS + 33, // 48: draiosproto.CloudLogsMetadata.AWS.cloudtrail_s3_bucket:type_name -> draiosproto.CloudLogsMetadata.AWS.CloudTrailS3Bucket + 35, // 49: draiosproto.encryption:extendee -> google.protobuf.FieldOptions + 50, // [50:50] is the sub-list for method output_type + 50, // [50:50] is the sub-list for method input_type + 50, // [50:50] is the sub-list for extension type_name + 49, // [49:50] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name +} + +func init() { file_cloud_account_proto_init() } +func file_cloud_account_proto_init() { + if File_cloud_account_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cloud_account_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudAccount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountFeatures); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountFeature); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureComponents); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountComponent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudConnectorMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrustedRoleMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventBridgeMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServicePrincipalMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookDatasourceMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CryptoKeyMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudLogsMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudConnectorMetadata_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[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudConnectorMetadata_Azure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudConnectorMetadata_GCP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrustedRoleMetadata_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[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrustedRoleMetadata_GCP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrustedRoleMetadata_Azure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventBridgeMetadata_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[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServicePrincipalMetadata_GCP); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServicePrincipalMetadata_Okta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServicePrincipalMetadata_GCP_Key); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServicePrincipalMetadata_Okta_OAuthApp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookDatasourceMetadata_Okta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookDatasourceMetadata_Github); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookDatasourceMetadata_Okta_WebhookDatasource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookDatasourceMetadata_Github_WebhookDatasource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CryptoKeyMetadata_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[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CryptoKeyMetadata_AWS_KMS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloudLogsMetadata_AWS); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cloud_account_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + 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[3].OneofWrappers = []interface{}{} + file_cloud_account_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*AccountComponent_CloudConnectorMetadata)(nil), + (*AccountComponent_TrustedRoleMetadata)(nil), + (*AccountComponent_EventBridgeMetadata)(nil), + (*AccountComponent_ServicePrincipalMetadata)(nil), + (*AccountComponent_WebhookDatasourceMetadata)(nil), + (*AccountComponent_CryptoKeyMetadata)(nil), + (*AccountComponent_CloudLogsMetadata)(nil), + } + file_cloud_account_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*CloudConnectorMetadata_Aws)(nil), + (*CloudConnectorMetadata_Azure_)(nil), + (*CloudConnectorMetadata_Gcp)(nil), + } + file_cloud_account_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*TrustedRoleMetadata_Aws)(nil), + (*TrustedRoleMetadata_Azure_)(nil), + (*TrustedRoleMetadata_Gcp)(nil), + } + file_cloud_account_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*EventBridgeMetadata_Aws)(nil), + } + file_cloud_account_proto_msgTypes[8].OneofWrappers = []interface{}{ + (*ServicePrincipalMetadata_Gcp)(nil), + (*ServicePrincipalMetadata_Okta_)(nil), + } + file_cloud_account_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*WebhookDatasourceMetadata_Okta_)(nil), + (*WebhookDatasourceMetadata_Github_)(nil), + } + file_cloud_account_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*CryptoKeyMetadata_Aws)(nil), + } + file_cloud_account_proto_msgTypes[11].OneofWrappers = []interface{}{ + (*CloudLogsMetadata_Aws)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cloud_account_proto_rawDesc, + NumEnums: 3, + NumMessages: 31, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_cloud_account_proto_goTypes, + DependencyIndexes: file_cloud_account_proto_depIdxs, + EnumInfos: file_cloud_account_proto_enumTypes, + MessageInfos: file_cloud_account_proto_msgTypes, + ExtensionInfos: file_cloud_account_proto_extTypes, + }.Build() + File_cloud_account_proto = out.File + file_cloud_account_proto_rawDesc = nil + file_cloud_account_proto_goTypes = nil + file_cloud_account_proto_depIdxs = nil +} diff --git a/sysdig/internal/client/v2/cloudauth/go/cloud_organization.pb.go b/sysdig/internal/client/v2/cloudauth/go/cloud_organization.pb.go index a1e841419..5c4615bd1 100644 --- a/sysdig/internal/client/v2/cloudauth/go/cloud_organization.pb.go +++ b/sysdig/internal/client/v2/cloudauth/go/cloud_organization.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: cloud_organization.proto package draiosproto @@ -255,4 +255,4 @@ func file_cloud_organization_proto_init() { file_cloud_organization_proto_rawDesc = nil file_cloud_organization_proto_goTypes = nil file_cloud_organization_proto_depIdxs = nil -} \ No newline at end of file +} diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 91113aefd..2bd0af61d 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -185,7 +185,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc Enabled: data.Get("enabled").(bool), ProviderId: data.Get("cloud_provider_id").(string), Provider: cloudauth.Provider(cloudauth.Provider_value[data.Get("cloud_provider_type").(string)]), - Components: cloudauth.FeatureComponents(data.Get("components").([]map[string]interface{})), + Components: []*cloudauth.AccountComponent{}, }, } } From e7a8fbe9c71769ec7c39a2895b80cca95dbee856 Mon Sep 17 00:00:00 2001 From: Christopher Geers Date: Wed, 13 Sep 2023 22:01:10 -0500 Subject: [PATCH 05/15] feat(cloudauth): features & components --- ...source_sysdig_secure_cloud_auth_account.go | 192 +++++++++++++++++- 1 file changed, 191 insertions(+), 1 deletion(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 2bd0af61d..585cfa078 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "google.golang.org/protobuf/encoding/protojson" ) func resourceSysdigSecureCloudauthAccount() *schema.Resource { @@ -48,6 +49,11 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { Type: schema.TypeBool, Required: true, }, + "feature": { + Type: schema.TypeSet, + Optional: true, + Elem: accountFeatures, + }, "components": { Type: schema.TypeList, Required: true, @@ -96,6 +102,49 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { } } +var accountFeatures = &schema.Resource{ + Schema: map[string]*schema.Schema{ + "secureConfigPosture": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + "secureIdentityEntitlement": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + "secureThreatDetection": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + "secureAgentlessScanning": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + "monitorCloudMetrics": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + }, +} +var accountFeature = &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": { + Type: schema.TypeString, + Optional: true, + }, + "enabled": { + Type: schema.TypeBool, + Optional: true, + }, + "components": { + Type: schema.TypeList, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + }, +} + func getSecureCloudauthAccountClient(client SysdigClients) (v2.CloudauthAccountSecureInterface, error) { return client.sysdigSecureClientV2() } @@ -180,12 +229,153 @@ func resourceSysdigSecureCloudauthAccountDelete(ctx context.Context, data *schem } func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAccountSecure { + components := []*cloudauth.AccountComponent{} + for _, rc := range data.Get("components").([]interface{}) { + resourceComponent := rc.(map[string]interface{}) + component := &cloudauth.AccountComponent{} + for key, value := range resourceComponent { + switch key { + case "type": + component.Type = cloudauth.Component(cloudauth.Component_value[value.(string)]) + case "instance": + component.Instance = value.(string) + case "cloudConnectorMetadata": + cloudConnectorMetadata := &cloudauth.CloudConnectorMetadata{} + if err := protojson.Unmarshal([]byte(value.(string)), cloudConnectorMetadata); err == nil { + component.Metadata = &cloudauth.AccountComponent_CloudConnectorMetadata{ + CloudConnectorMetadata: cloudConnectorMetadata, + } + } + case "trustedRoleMetadata": + metadata := &cloudauth.TrustedRoleMetadata{} + if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + component.Metadata = &cloudauth.AccountComponent_TrustedRoleMetadata{ + TrustedRoleMetadata: metadata, + } + } + case "eventBridgeMetadata": + metadata := &cloudauth.EventBridgeMetadata{} + if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + component.Metadata = &cloudauth.AccountComponent_EventBridgeMetadata{ + EventBridgeMetadata: metadata, + } + } + case "servicePrincipalMetadata": + metadata := &cloudauth.CloudConnectorMetadata{} + if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + component.Metadata = &cloudauth.AccountComponent_CloudConnectorMetadata{ + CloudConnectorMetadata: metadata, + } + } + case "webhookDatasourceMetadata": + metadata := &cloudauth.WebhookDatasourceMetadata{} + if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + component.Metadata = &cloudauth.AccountComponent_WebhookDatasourceMetadata{ + WebhookDatasourceMetadata: metadata, + } + } + case "cryptoKeyMetadata": + metadata := &cloudauth.CryptoKeyMetadata{} + if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + component.Metadata = &cloudauth.AccountComponent_CryptoKeyMetadata{ + CryptoKeyMetadata: metadata, + } + } + case "cloudLogsMetadata": + metadata := &cloudauth.CloudLogsMetadata{} + if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + component.Metadata = &cloudauth.AccountComponent_CloudLogsMetadata{ + CloudLogsMetadata: metadata, + } + } + } + } + components = append(components, component) + } + + accountFeatures := &cloudauth.AccountFeatures{} + for name, value := range data.Get("feature").(map[string]interface{}) { + switch name { + case "secureConfigPosture": + accountFeatures.SecureConfigPosture = &cloudauth.AccountFeature{} + for name2, value2 := range value.(map[string]interface{}) { + switch name2 { + case "type": + accountFeatures.SecureConfigPosture.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) + case "enabled": + accountFeatures.SecureConfigPosture.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.SecureConfigPosture.Components = append(accountFeatures.SecureConfigPosture.Components, componentID.(string)) + } + } + } + case "secureIdentityEntitlement": + accountFeatures.SecureIdentityEntitlement = &cloudauth.AccountFeature{} + for name2, value2 := range value.(map[string]interface{}) { + switch name2 { + case "type": + accountFeatures.SecureIdentityEntitlement.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) + case "enabled": + accountFeatures.SecureIdentityEntitlement.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.SecureIdentityEntitlement.Components = append(accountFeatures.SecureIdentityEntitlement.Components, componentID.(string)) + } + } + } + case "secureThreatDetection": + accountFeatures.SecureThreatDetection = &cloudauth.AccountFeature{} + for name2, value2 := range value.(map[string]interface{}) { + switch name2 { + case "type": + accountFeatures.SecureThreatDetection.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) + case "enabled": + accountFeatures.SecureThreatDetection.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.SecureThreatDetection.Components = append(accountFeatures.SecureThreatDetection.Components, componentID.(string)) + } + } + } + case "secureAgentlessScanning": + accountFeatures.SecureAgentlessScanning = &cloudauth.AccountFeature{} + for name2, value2 := range value.(map[string]interface{}) { + switch name2 { + case "type": + accountFeatures.SecureAgentlessScanning.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) + case "enabled": + accountFeatures.SecureAgentlessScanning.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.SecureAgentlessScanning.Components = append(accountFeatures.SecureAgentlessScanning.Components, componentID.(string)) + } + } + } + case "monitorCloudMetrics": + accountFeatures.MonitorCloudMetrics = &cloudauth.AccountFeature{} + for name2, value2 := range value.(map[string]interface{}) { + switch name2 { + case "type": + accountFeatures.MonitorCloudMetrics.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) + case "enabled": + accountFeatures.MonitorCloudMetrics.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.MonitorCloudMetrics.Components = append(accountFeatures.MonitorCloudMetrics.Components, componentID.(string)) + } + } + } + } + } + return &v2.CloudauthAccountSecure{ CloudAccount: cloudauth.CloudAccount{ Enabled: data.Get("enabled").(bool), ProviderId: data.Get("cloud_provider_id").(string), Provider: cloudauth.Provider(cloudauth.Provider_value[data.Get("cloud_provider_type").(string)]), - Components: []*cloudauth.AccountComponent{}, + Components: components, + Feature: accountFeatures, }, } } From 4fef2431c54f310cf39d241aa76a3a44060b8228 Mon Sep 17 00:00:00 2001 From: Christopher Geers Date: Thu, 14 Sep 2023 17:57:00 -0500 Subject: [PATCH 06/15] fix(cloudauth): update resource data --- ...source_sysdig_secure_cloud_auth_account.go | 40 +++++-------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 585cfa078..0183720a2 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -381,35 +381,17 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } func cloudauthAccountToResourceData(data *schema.ResourceData, cloudAccount *v2.CloudauthAccountSecure) error { - err := data.Set("id", cloudAccount.Id) - - if err != nil { - return err - } - - err = data.Set("enabled", cloudAccount.Enabled) - - if err != nil { - return err - } - - err = data.Set("cloud_provider_id", cloudAccount.ProviderId) - - if err != nil { - return err - } - - err = data.Set("cloud_provider_type", cloudAccount.Provider.String()) - - if err != nil { - return err - } - - err = data.Set("components", cloudAccount.Components) - - if err != nil { - return err + for _, err := range []error{ + data.Set("id", cloudAccount.Id), + data.Set("enabled", cloudAccount.Enabled), + data.Set("cloud_provider_id", cloudAccount.ProviderId), + data.Set("cloud_provider_type", cloudAccount.Provider.String()), + data.Set("components", cloudAccount.Components), + data.Set("feature", cloudAccount.Feature), + } { + if err != nil { + return err + } } - return nil } From 38e2ab0a7fcfb4691ed27e92878e6383da5b21d1 Mon Sep 17 00:00:00 2001 From: Christopher Geers Date: Thu, 14 Sep 2023 18:02:04 -0500 Subject: [PATCH 07/15] fix(cloudauth): adjust required fields --- sysdig/resource_sysdig_secure_cloud_auth_account.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 0183720a2..ece2a82e4 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -56,7 +56,7 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { }, "components": { Type: schema.TypeList, - Required: true, + Optional: true, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "type": { @@ -130,11 +130,11 @@ var accountFeature = &schema.Resource{ Schema: map[string]*schema.Schema{ "type": { Type: schema.TypeString, - Optional: true, + Computed: true, }, "enabled": { Type: schema.TypeBool, - Optional: true, + Required: true, }, "components": { Type: schema.TypeList, From 80e0632072a033195764d1dfafcf3793e6a77479 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Thu, 14 Sep 2023 19:50:29 -0700 Subject: [PATCH 08/15] Fix schema field names --- ...source_sysdig_secure_cloud_auth_account.go | 200 +++++++++--------- 1 file changed, 103 insertions(+), 97 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index ece2a82e4..950c82b16 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -16,6 +16,92 @@ import ( func resourceSysdigSecureCloudauthAccount() *schema.Resource { timeout := 5 * time.Minute + var accountFeature = &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": { + Type: schema.TypeString, + Computed: true, + }, + "enabled": { + Type: schema.TypeBool, + Required: true, + }, + "components": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + }, + } + + var accountFeatures = &schema.Resource{ + Schema: map[string]*schema.Schema{ + "secure_config_posture": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + "secure_identity_entitlement": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + "secure_threat_detection": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + "secure_agentless_scanning": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + "monitor_cloud_metrics": { + Type: schema.TypeSet, + Elem: accountFeature, + }, + }, + } + + var accountComponents = &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": { + Type: schema.TypeString, + Required: true, + }, + "instance": { + Type: schema.TypeString, + Required: true, + }, + "cloud_connector_metadata": { + Type: schema.TypeString, + Optional: true, + }, + "trusted_role_metadata": { + Type: schema.TypeString, + Optional: true, + }, + "event_bridge_metadata": { + Type: schema.TypeString, + Optional: true, + }, + "service_principal_metadata": { + Type: schema.TypeString, + Optional: true, + }, + "webhook_datasource_metadata": { + Type: schema.TypeString, + Optional: true, + }, + "crypto_key_metadata": { + Type: schema.TypeString, + Optional: true, + }, + "cloud_logs_metadata": { + Type: schema.TypeString, + Optional: true, + }, + }, + } + return &schema.Resource{ CreateContext: resourceSysdigSecureCloudauthAccountCreate, UpdateContext: resourceSysdigSecureCloudauthAccountUpdate, @@ -57,94 +143,12 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { "components": { Type: schema.TypeList, Optional: true, - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "type": { - Type: schema.TypeString, - Required: true, - }, - "instance": { - Type: schema.TypeString, - Required: true, - }, - "cloudConnectorMetadata": { - Type: schema.TypeString, - Optional: true, - }, - "trustedRoleMetadata": { - Type: schema.TypeString, - Optional: true, - }, - "eventBridgeMetadata": { - Type: schema.TypeString, - Optional: true, - }, - "servicePrincipalMetadata": { - Type: schema.TypeString, - Optional: true, - }, - "webhookDatasourceMetadata": { - Type: schema.TypeString, - Optional: true, - }, - "cryptoKeyMetadata": { - Type: schema.TypeString, - Optional: true, - }, - "cloudLogsMetadata": { - Type: schema.TypeString, - Optional: true, - }, - }, - }, + Elem: accountComponents, }, }, } } -var accountFeatures = &schema.Resource{ - Schema: map[string]*schema.Schema{ - "secureConfigPosture": { - Type: schema.TypeSet, - Elem: accountFeature, - }, - "secureIdentityEntitlement": { - Type: schema.TypeSet, - Elem: accountFeature, - }, - "secureThreatDetection": { - Type: schema.TypeSet, - Elem: accountFeature, - }, - "secureAgentlessScanning": { - Type: schema.TypeSet, - Elem: accountFeature, - }, - "monitorCloudMetrics": { - Type: schema.TypeSet, - Elem: accountFeature, - }, - }, -} -var accountFeature = &schema.Resource{ - Schema: map[string]*schema.Schema{ - "type": { - Type: schema.TypeString, - Computed: true, - }, - "enabled": { - Type: schema.TypeBool, - Required: true, - }, - "components": { - Type: schema.TypeList, - Elem: &schema.Schema{ - Type: schema.TypeString, - }, - }, - }, -} - func getSecureCloudauthAccountClient(client SysdigClients) (v2.CloudauthAccountSecureInterface, error) { return client.sysdigSecureClientV2() } @@ -230,58 +234,60 @@ func resourceSysdigSecureCloudauthAccountDelete(ctx context.Context, data *schem func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAccountSecure { components := []*cloudauth.AccountComponent{} - for _, rc := range data.Get("components").([]interface{}) { + + for _, rc := range data.Get("component").([]interface{}) { resourceComponent := rc.(map[string]interface{}) component := &cloudauth.AccountComponent{} + for key, value := range resourceComponent { switch key { case "type": component.Type = cloudauth.Component(cloudauth.Component_value[value.(string)]) case "instance": component.Instance = value.(string) - case "cloudConnectorMetadata": + case "cloud_connector_metadata": cloudConnectorMetadata := &cloudauth.CloudConnectorMetadata{} if err := protojson.Unmarshal([]byte(value.(string)), cloudConnectorMetadata); err == nil { component.Metadata = &cloudauth.AccountComponent_CloudConnectorMetadata{ CloudConnectorMetadata: cloudConnectorMetadata, } } - case "trustedRoleMetadata": + case "trusted_role_metadata": metadata := &cloudauth.TrustedRoleMetadata{} if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { component.Metadata = &cloudauth.AccountComponent_TrustedRoleMetadata{ TrustedRoleMetadata: metadata, } } - case "eventBridgeMetadata": + case "event_bridge_metadata": metadata := &cloudauth.EventBridgeMetadata{} if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { component.Metadata = &cloudauth.AccountComponent_EventBridgeMetadata{ EventBridgeMetadata: metadata, } } - case "servicePrincipalMetadata": + case "service_principal_metadata": metadata := &cloudauth.CloudConnectorMetadata{} if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { component.Metadata = &cloudauth.AccountComponent_CloudConnectorMetadata{ CloudConnectorMetadata: metadata, } } - case "webhookDatasourceMetadata": + case "webhook_datasource_metadata": metadata := &cloudauth.WebhookDatasourceMetadata{} if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { component.Metadata = &cloudauth.AccountComponent_WebhookDatasourceMetadata{ WebhookDatasourceMetadata: metadata, } } - case "cryptoKeyMetadata": + case "crypto_key_metadata": metadata := &cloudauth.CryptoKeyMetadata{} if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { component.Metadata = &cloudauth.AccountComponent_CryptoKeyMetadata{ CryptoKeyMetadata: metadata, } } - case "cloudLogsMetadata": + case "cloud_logs_metadata": metadata := &cloudauth.CloudLogsMetadata{} if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { component.Metadata = &cloudauth.AccountComponent_CloudLogsMetadata{ @@ -296,7 +302,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc accountFeatures := &cloudauth.AccountFeatures{} for name, value := range data.Get("feature").(map[string]interface{}) { switch name { - case "secureConfigPosture": + case "secure_config_posture": accountFeatures.SecureConfigPosture = &cloudauth.AccountFeature{} for name2, value2 := range value.(map[string]interface{}) { switch name2 { @@ -310,7 +316,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } } } - case "secureIdentityEntitlement": + case "secure_identity_entitlement": accountFeatures.SecureIdentityEntitlement = &cloudauth.AccountFeature{} for name2, value2 := range value.(map[string]interface{}) { switch name2 { @@ -324,7 +330,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } } } - case "secureThreatDetection": + case "secure_threat_detection": accountFeatures.SecureThreatDetection = &cloudauth.AccountFeature{} for name2, value2 := range value.(map[string]interface{}) { switch name2 { @@ -338,7 +344,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } } } - case "secureAgentlessScanning": + case "secure_agentless_scanning": accountFeatures.SecureAgentlessScanning = &cloudauth.AccountFeature{} for name2, value2 := range value.(map[string]interface{}) { switch name2 { @@ -352,7 +358,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } } } - case "monitorCloudMetrics": + case "monitor_cloud_metrics": accountFeatures.MonitorCloudMetrics = &cloudauth.AccountFeature{} for name2, value2 := range value.(map[string]interface{}) { switch name2 { @@ -386,7 +392,7 @@ func cloudauthAccountToResourceData(data *schema.ResourceData, cloudAccount *v2. data.Set("enabled", cloudAccount.Enabled), data.Set("cloud_provider_id", cloudAccount.ProviderId), data.Set("cloud_provider_type", cloudAccount.Provider.String()), - data.Set("components", cloudAccount.Components), + data.Set("component", cloudAccount.Components), data.Set("feature", cloudAccount.Feature), } { if err != nil { From a577173e7cf14d61a81d47f6df2d27b1335b628e Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Thu, 14 Sep 2023 19:51:55 -0700 Subject: [PATCH 09/15] Set features as optional --- sysdig/resource_sysdig_secure_cloud_auth_account.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 950c82b16..88d1de2ef 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -40,22 +40,27 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { Schema: map[string]*schema.Schema{ "secure_config_posture": { Type: schema.TypeSet, + Optional: true, Elem: accountFeature, }, "secure_identity_entitlement": { Type: schema.TypeSet, + Optional: true, Elem: accountFeature, }, "secure_threat_detection": { Type: schema.TypeSet, + Optional: true, Elem: accountFeature, }, "secure_agentless_scanning": { Type: schema.TypeSet, + Optional: true, Elem: accountFeature, }, "monitor_cloud_metrics": { Type: schema.TypeSet, + Optional: true, Elem: accountFeature, }, }, From 5ed100ffac6a9ce4a0231f0c90cf28a510ae54ec Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Thu, 14 Sep 2023 21:03:00 -0700 Subject: [PATCH 10/15] Convert schema set to map --- ...source_sysdig_secure_cloud_auth_account.go | 61 +++++++++++++------ 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 88d1de2ef..e9d27db9b 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -39,29 +39,29 @@ func resourceSysdigSecureCloudauthAccount() *schema.Resource { var accountFeatures = &schema.Resource{ Schema: map[string]*schema.Schema{ "secure_config_posture": { - Type: schema.TypeSet, + Type: schema.TypeSet, Optional: true, - Elem: accountFeature, + Elem: accountFeature, }, "secure_identity_entitlement": { - Type: schema.TypeSet, + Type: schema.TypeSet, Optional: true, - Elem: accountFeature, + Elem: accountFeature, }, "secure_threat_detection": { - Type: schema.TypeSet, + Type: schema.TypeSet, Optional: true, - Elem: accountFeature, + Elem: accountFeature, }, "secure_agentless_scanning": { - Type: schema.TypeSet, + Type: schema.TypeSet, Optional: true, - Elem: accountFeature, + Elem: accountFeature, }, "monitor_cloud_metrics": { - Type: schema.TypeSet, + Type: schema.TypeSet, Optional: true, - Elem: accountFeature, + Elem: accountFeature, }, }, } @@ -237,10 +237,24 @@ func resourceSysdigSecureCloudauthAccountDelete(ctx context.Context, data *schem return nil } +func convertSchemaSetToMap(set *schema.Set) map[string]interface{} { + result := make(map[string]interface{}) + + for _, element := range set.List() { + if entry, ok := element.(map[string]interface{}); ok { + for key, value := range entry { + result[key] = value + } + } + } + + return result +} + func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAccountSecure { components := []*cloudauth.AccountComponent{} - for _, rc := range data.Get("component").([]interface{}) { + for _, rc := range data.Get("components").([]interface{}) { resourceComponent := rc.(map[string]interface{}) component := &cloudauth.AccountComponent{} @@ -305,11 +319,22 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } accountFeatures := &cloudauth.AccountFeatures{} - for name, value := range data.Get("feature").(map[string]interface{}) { + + featureData := data.Get("feature") + + var featureMap map[string]interface{} + + featureMap = convertSchemaSetToMap(featureData.(*schema.Set)) + + for name, value := range featureMap { + var valueMap map[string]interface{} + + valueMap = convertSchemaSetToMap(value.(*schema.Set)) switch name { case "secure_config_posture": accountFeatures.SecureConfigPosture = &cloudauth.AccountFeature{} - for name2, value2 := range value.(map[string]interface{}) { + + for name2, value2 := range valueMap { switch name2 { case "type": accountFeatures.SecureConfigPosture.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) @@ -323,7 +348,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } case "secure_identity_entitlement": accountFeatures.SecureIdentityEntitlement = &cloudauth.AccountFeature{} - for name2, value2 := range value.(map[string]interface{}) { + for name2, value2 := range valueMap { switch name2 { case "type": accountFeatures.SecureIdentityEntitlement.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) @@ -337,7 +362,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } case "secure_threat_detection": accountFeatures.SecureThreatDetection = &cloudauth.AccountFeature{} - for name2, value2 := range value.(map[string]interface{}) { + for name2, value2 := range valueMap { switch name2 { case "type": accountFeatures.SecureThreatDetection.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) @@ -351,7 +376,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } case "secure_agentless_scanning": accountFeatures.SecureAgentlessScanning = &cloudauth.AccountFeature{} - for name2, value2 := range value.(map[string]interface{}) { + for name2, value2 := range valueMap { switch name2 { case "type": accountFeatures.SecureAgentlessScanning.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) @@ -365,7 +390,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } case "monitor_cloud_metrics": accountFeatures.MonitorCloudMetrics = &cloudauth.AccountFeature{} - for name2, value2 := range value.(map[string]interface{}) { + for name2, value2 := range valueMap { switch name2 { case "type": accountFeatures.MonitorCloudMetrics.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) @@ -397,7 +422,7 @@ func cloudauthAccountToResourceData(data *schema.ResourceData, cloudAccount *v2. data.Set("enabled", cloudAccount.Enabled), data.Set("cloud_provider_id", cloudAccount.ProviderId), data.Set("cloud_provider_type", cloudAccount.Provider.String()), - data.Set("component", cloudAccount.Components), + data.Set("components", cloudAccount.Components), data.Set("feature", cloudAccount.Feature), } { if err != nil { From 49b621e669744a0b8d35181787692e4d0848d58f Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Sun, 17 Sep 2023 14:29:51 -0700 Subject: [PATCH 11/15] Check for value before switch case --- ...source_sysdig_secure_cloud_auth_account.go | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index e9d27db9b..95164308e 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -10,7 +10,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" - "google.golang.org/protobuf/encoding/protojson" ) func resourceSysdigSecureCloudauthAccount() *schema.Resource { @@ -259,62 +258,63 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc component := &cloudauth.AccountComponent{} for key, value := range resourceComponent { - switch key { - case "type": - component.Type = cloudauth.Component(cloudauth.Component_value[value.(string)]) - case "instance": - component.Instance = value.(string) - case "cloud_connector_metadata": - cloudConnectorMetadata := &cloudauth.CloudConnectorMetadata{} - if err := protojson.Unmarshal([]byte(value.(string)), cloudConnectorMetadata); err == nil { + + if value != nil { + switch key { + case "type": + component.Type = cloudauth.Component(cloudauth.Component_value[value.(string)]) + case "instance": + component.Instance = value.(string) + case "cloud_connector_metadata": component.Metadata = &cloudauth.AccountComponent_CloudConnectorMetadata{ - CloudConnectorMetadata: cloudConnectorMetadata, + CloudConnectorMetadata: &cloudauth.CloudConnectorMetadata{}, } - } - case "trusted_role_metadata": - metadata := &cloudauth.TrustedRoleMetadata{} - if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + case "trusted_role_metadata": + // TODO: Make it more generic than just for GCP component.Metadata = &cloudauth.AccountComponent_TrustedRoleMetadata{ - TrustedRoleMetadata: metadata, + TrustedRoleMetadata: &cloudauth.TrustedRoleMetadata{ + Provider: &cloudauth.TrustedRoleMetadata_Gcp{ + Gcp: &cloudauth.TrustedRoleMetadata_GCP{ + RoleName: value.(string), + }, + }, + }, } - } - case "event_bridge_metadata": - metadata := &cloudauth.EventBridgeMetadata{} - if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + case "event_bridge_metadata": component.Metadata = &cloudauth.AccountComponent_EventBridgeMetadata{ - EventBridgeMetadata: metadata, + EventBridgeMetadata: &cloudauth.EventBridgeMetadata{}, } - } - case "service_principal_metadata": - metadata := &cloudauth.CloudConnectorMetadata{} - if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { - component.Metadata = &cloudauth.AccountComponent_CloudConnectorMetadata{ - CloudConnectorMetadata: metadata, + case "service_principal_metadata": + // TODO: Make it more generic than just for GCP + component.Metadata = &cloudauth.AccountComponent_ServicePrincipalMetadata{ + ServicePrincipalMetadata: &cloudauth.ServicePrincipalMetadata{ + Provider: &cloudauth.ServicePrincipalMetadata_Gcp{ + Gcp: &cloudauth.ServicePrincipalMetadata_GCP{ + Key: &cloudauth.ServicePrincipalMetadata_GCP_Key{ + ProjectId: data.Get("cloud_provider_id").(string), + PrivateKeyId: "deadbeef", + PrivateKey: "cert thangs", + }, + }, + }, + }, } - } - case "webhook_datasource_metadata": - metadata := &cloudauth.WebhookDatasourceMetadata{} - if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + case "webhook_datasource_metadata": component.Metadata = &cloudauth.AccountComponent_WebhookDatasourceMetadata{ - WebhookDatasourceMetadata: metadata, + WebhookDatasourceMetadata: &cloudauth.WebhookDatasourceMetadata{}, } - } - case "crypto_key_metadata": - metadata := &cloudauth.CryptoKeyMetadata{} - if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + case "crypto_key_metadata": component.Metadata = &cloudauth.AccountComponent_CryptoKeyMetadata{ - CryptoKeyMetadata: metadata, + CryptoKeyMetadata: &cloudauth.CryptoKeyMetadata{}, } - } - case "cloud_logs_metadata": - metadata := &cloudauth.CloudLogsMetadata{} - if err := protojson.Unmarshal([]byte(value.(string)), metadata); err == nil { + case "cloud_logs_metadata": component.Metadata = &cloudauth.AccountComponent_CloudLogsMetadata{ - CloudLogsMetadata: metadata, + CloudLogsMetadata: &cloudauth.CloudLogsMetadata{}, } } } } + components = append(components, component) } From b3e60dcb1901d6630430ec3b947356b6bfef6f86 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Mon, 18 Sep 2023 12:19:50 -0700 Subject: [PATCH 12/15] Populate features only if value is not nil --- ...source_sysdig_secure_cloud_auth_account.go | 107 ++++++++++-------- 1 file changed, 60 insertions(+), 47 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 95164308e..4ff6da7ab 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -259,7 +259,7 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc for key, value := range resourceComponent { - if value != nil { + if value != nil && value.(string) != "" { switch key { case "type": component.Type = cloudauth.Component(cloudauth.Component_value[value.(string)]) @@ -333,72 +333,85 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc switch name { case "secure_config_posture": accountFeatures.SecureConfigPosture = &cloudauth.AccountFeature{} - - for name2, value2 := range valueMap { - switch name2 { - case "type": - accountFeatures.SecureConfigPosture.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) - case "enabled": - accountFeatures.SecureConfigPosture.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.SecureConfigPosture.Components = append(accountFeatures.SecureConfigPosture.Components, componentID.(string)) + if value != nil { + accountFeatures.SecureConfigPosture.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_SECURE_CONFIG_POSTURE) + + for name2, value2 := range valueMap { + switch name2 { + case "enabled": + accountFeatures.SecureConfigPosture.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.SecureConfigPosture.Components = append(accountFeatures.SecureConfigPosture.Components, componentID.(string)) + } } } } case "secure_identity_entitlement": accountFeatures.SecureIdentityEntitlement = &cloudauth.AccountFeature{} - for name2, value2 := range valueMap { - switch name2 { - case "type": - accountFeatures.SecureIdentityEntitlement.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) - case "enabled": - accountFeatures.SecureIdentityEntitlement.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.SecureIdentityEntitlement.Components = append(accountFeatures.SecureIdentityEntitlement.Components, componentID.(string)) + + if value != nil { + accountFeatures.SecureIdentityEntitlement.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_SECURE_IDENTITY_ENTITLEMENT) + + for name2, value2 := range valueMap { + switch name2 { + case "enabled": + accountFeatures.SecureIdentityEntitlement.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.SecureIdentityEntitlement.Components = append(accountFeatures.SecureIdentityEntitlement.Components, componentID.(string)) + } } } } case "secure_threat_detection": accountFeatures.SecureThreatDetection = &cloudauth.AccountFeature{} - for name2, value2 := range valueMap { - switch name2 { - case "type": - accountFeatures.SecureThreatDetection.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) - case "enabled": - accountFeatures.SecureThreatDetection.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.SecureThreatDetection.Components = append(accountFeatures.SecureThreatDetection.Components, componentID.(string)) + + if value != nil { + accountFeatures.SecureThreatDetection.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_SECURE_THREAT_DETECTION) + + for name2, value2 := range valueMap { + switch name2 { + case "enabled": + accountFeatures.SecureThreatDetection.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.SecureThreatDetection.Components = append(accountFeatures.SecureThreatDetection.Components, componentID.(string)) + } } } } case "secure_agentless_scanning": accountFeatures.SecureAgentlessScanning = &cloudauth.AccountFeature{} - for name2, value2 := range valueMap { - switch name2 { - case "type": - accountFeatures.SecureAgentlessScanning.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) - case "enabled": - accountFeatures.SecureAgentlessScanning.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.SecureAgentlessScanning.Components = append(accountFeatures.SecureAgentlessScanning.Components, componentID.(string)) + + if value != nil { + accountFeatures.SecureAgentlessScanning.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_SECURE_AGENTLESS_SCANNING) + + for name2, value2 := range valueMap { + switch name2 { + case "enabled": + accountFeatures.SecureAgentlessScanning.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.SecureAgentlessScanning.Components = append(accountFeatures.SecureAgentlessScanning.Components, componentID.(string)) + } } } } case "monitor_cloud_metrics": accountFeatures.MonitorCloudMetrics = &cloudauth.AccountFeature{} - for name2, value2 := range valueMap { - switch name2 { - case "type": - accountFeatures.MonitorCloudMetrics.Type = cloudauth.Feature(cloudauth.Feature_value[value2.(string)]) - case "enabled": - accountFeatures.MonitorCloudMetrics.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.MonitorCloudMetrics.Components = append(accountFeatures.MonitorCloudMetrics.Components, componentID.(string)) + + if value != nil { + accountFeatures.MonitorCloudMetrics.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_MONITOR_CLOUD_METRICS) + + for name2, value2 := range valueMap { + switch name2 { + case "enabled": + accountFeatures.MonitorCloudMetrics.Enabled = value2.(bool) + case "components": + for _, componentID := range value2.([]interface{}) { + accountFeatures.MonitorCloudMetrics.Components = append(accountFeatures.MonitorCloudMetrics.Components, componentID.(string)) + } } } } From b89b5125a056ae7405c048f01e2e2e61f959bc1a Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Mon, 18 Sep 2023 14:58:27 -0700 Subject: [PATCH 13/15] Setaccount features using function --- ...source_sysdig_secure_cloud_auth_account.go | 139 ++++++------------ 1 file changed, 47 insertions(+), 92 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 4ff6da7ab..c2bb1c1c5 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -2,6 +2,7 @@ package sysdig import ( "context" + "reflect" "strings" "time" @@ -250,8 +251,25 @@ func convertSchemaSetToMap(set *schema.Set) map[string]interface{} { return result } +func setAccountFeature(accountFeatures *cloudauth.AccountFeatures, fieldName string, featureType cloudauth.Feature, valueMap map[string]interface{}) { + target := reflect.ValueOf(accountFeatures).Elem().FieldByName(fieldName) + target.Elem().FieldByName("Type").Set(reflect.ValueOf(cloudauth.Feature(featureType))) + + for name, value := range valueMap { + switch name { + case "enabled": + target.Elem().FieldByName("Enabled").SetBool(value.(bool)) + case "components": + for _, componentID := range value.([]interface{}) { + target.Elem().FieldByName("Components").Set(reflect.Append(target.Elem().FieldByName("Components"), reflect.ValueOf(componentID.(string)))) + } + } + } +} + func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAccountSecure { components := []*cloudauth.AccountComponent{} + provider := data.Get("cloud_provider_type").(string) for _, rc := range data.Get("components").([]interface{}) { resourceComponent := rc.(map[string]interface{}) @@ -271,14 +289,16 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } case "trusted_role_metadata": // TODO: Make it more generic than just for GCP - component.Metadata = &cloudauth.AccountComponent_TrustedRoleMetadata{ - TrustedRoleMetadata: &cloudauth.TrustedRoleMetadata{ - Provider: &cloudauth.TrustedRoleMetadata_Gcp{ - Gcp: &cloudauth.TrustedRoleMetadata_GCP{ - RoleName: value.(string), + if provider == cloudauth.Provider_PROVIDER_GCP.String() { + component.Metadata = &cloudauth.AccountComponent_TrustedRoleMetadata{ + TrustedRoleMetadata: &cloudauth.TrustedRoleMetadata{ + Provider: &cloudauth.TrustedRoleMetadata_Gcp{ + Gcp: &cloudauth.TrustedRoleMetadata_GCP{ + RoleName: value.(string), + }, }, }, - }, + } } case "event_bridge_metadata": component.Metadata = &cloudauth.AccountComponent_EventBridgeMetadata{ @@ -327,93 +347,28 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc featureMap = convertSchemaSetToMap(featureData.(*schema.Set)) for name, value := range featureMap { - var valueMap map[string]interface{} - valueMap = convertSchemaSetToMap(value.(*schema.Set)) - switch name { - case "secure_config_posture": - accountFeatures.SecureConfigPosture = &cloudauth.AccountFeature{} - if value != nil { - accountFeatures.SecureConfigPosture.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_SECURE_CONFIG_POSTURE) - - for name2, value2 := range valueMap { - switch name2 { - case "enabled": - accountFeatures.SecureConfigPosture.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.SecureConfigPosture.Components = append(accountFeatures.SecureConfigPosture.Components, componentID.(string)) - } - } - } - } - case "secure_identity_entitlement": - accountFeatures.SecureIdentityEntitlement = &cloudauth.AccountFeature{} - - if value != nil { - accountFeatures.SecureIdentityEntitlement.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_SECURE_IDENTITY_ENTITLEMENT) - - for name2, value2 := range valueMap { - switch name2 { - case "enabled": - accountFeatures.SecureIdentityEntitlement.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.SecureIdentityEntitlement.Components = append(accountFeatures.SecureIdentityEntitlement.Components, componentID.(string)) - } - } - } - } - case "secure_threat_detection": - accountFeatures.SecureThreatDetection = &cloudauth.AccountFeature{} - - if value != nil { - accountFeatures.SecureThreatDetection.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_SECURE_THREAT_DETECTION) - - for name2, value2 := range valueMap { - switch name2 { - case "enabled": - accountFeatures.SecureThreatDetection.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.SecureThreatDetection.Components = append(accountFeatures.SecureThreatDetection.Components, componentID.(string)) - } - } - } - } - case "secure_agentless_scanning": - accountFeatures.SecureAgentlessScanning = &cloudauth.AccountFeature{} - - if value != nil { - accountFeatures.SecureAgentlessScanning.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_SECURE_AGENTLESS_SCANNING) - - for name2, value2 := range valueMap { - switch name2 { - case "enabled": - accountFeatures.SecureAgentlessScanning.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.SecureAgentlessScanning.Components = append(accountFeatures.SecureAgentlessScanning.Components, componentID.(string)) - } - } - } - } - case "monitor_cloud_metrics": - accountFeatures.MonitorCloudMetrics = &cloudauth.AccountFeature{} - - if value != nil { - accountFeatures.MonitorCloudMetrics.Type = cloudauth.Feature(cloudauth.Feature_FEATURE_MONITOR_CLOUD_METRICS) - - for name2, value2 := range valueMap { - switch name2 { - case "enabled": - accountFeatures.MonitorCloudMetrics.Enabled = value2.(bool) - case "components": - for _, componentID := range value2.([]interface{}) { - accountFeatures.MonitorCloudMetrics.Components = append(accountFeatures.MonitorCloudMetrics.Components, componentID.(string)) - } - } - } + if value != nil && value.(*schema.Set) != nil { + + var valueMap map[string]interface{} + + valueMap = convertSchemaSetToMap(value.(*schema.Set)) + switch name { + case "secure_config_posture": + accountFeatures.SecureConfigPosture = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "SecureConfigPosture", cloudauth.Feature_FEATURE_SECURE_CONFIG_POSTURE, valueMap) + case "secure_identity_entitlement": + accountFeatures.SecureIdentityEntitlement = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "SecureIdentityEntitlement", cloudauth.Feature_FEATURE_SECURE_IDENTITY_ENTITLEMENT, valueMap) + case "secure_threat_detection": + accountFeatures.SecureThreatDetection = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "SecureThreatDetection", cloudauth.Feature_FEATURE_SECURE_THREAT_DETECTION, valueMap) + case "secure_agentless_scanning": + accountFeatures.SecureAgentlessScanning = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "SecureAgentlessScanning", cloudauth.Feature_FEATURE_SECURE_AGENTLESS_SCANNING, valueMap) + case "monitor_cloud_metrics": + accountFeatures.MonitorCloudMetrics = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "MonitorCloudMetrics", cloudauth.Feature_FEATURE_MONITOR_CLOUD_METRICS, valueMap) } } } From 59dbb97c954a13c13c22218aa80f6914c0454185 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Mon, 18 Sep 2023 16:14:36 -0700 Subject: [PATCH 14/15] Refactor fromResourceData function --- ...source_sysdig_secure_cloud_auth_account.go | 89 +++++++++++-------- 1 file changed, 52 insertions(+), 37 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index c2bb1c1c5..2dbc94622 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -237,6 +237,9 @@ func resourceSysdigSecureCloudauthAccountDelete(ctx context.Context, data *schem return nil } +/* +This function converts a schema set to map for iteration. +*/ func convertSchemaSetToMap(set *schema.Set) map[string]interface{} { result := make(map[string]interface{}) @@ -251,6 +254,9 @@ func convertSchemaSetToMap(set *schema.Set) map[string]interface{} { return result } +/* +This helper function dynamically populates the account features object for account creation +*/ func setAccountFeature(accountFeatures *cloudauth.AccountFeatures, fieldName string, featureType cloudauth.Feature, valueMap map[string]interface{}) { target := reflect.ValueOf(accountFeatures).Elem().FieldByName(fieldName) target.Elem().FieldByName("Type").Set(reflect.ValueOf(cloudauth.Feature(featureType))) @@ -267,8 +273,44 @@ func setAccountFeature(accountFeatures *cloudauth.AccountFeatures, fieldName str } } -func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAccountSecure { - components := []*cloudauth.AccountComponent{} +/* +This helper function aggregates the account features object that will be used in the +cloudauthAccountFromResourceData() function +*/ +func constructAccountFeatures(accountFeatures *cloudauth.AccountFeatures, featureData interface{}) *cloudauth.AccountFeatures { + featureMap := convertSchemaSetToMap(featureData.(*schema.Set)) + + for name, value := range featureMap { + if value != nil && value.(*schema.Set) != nil { + valueMap := convertSchemaSetToMap(value.(*schema.Set)) + switch name { + case "secure_config_posture": + accountFeatures.SecureConfigPosture = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "SecureConfigPosture", cloudauth.Feature_FEATURE_SECURE_CONFIG_POSTURE, valueMap) + case "secure_identity_entitlement": + accountFeatures.SecureIdentityEntitlement = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "SecureIdentityEntitlement", cloudauth.Feature_FEATURE_SECURE_IDENTITY_ENTITLEMENT, valueMap) + case "secure_threat_detection": + accountFeatures.SecureThreatDetection = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "SecureThreatDetection", cloudauth.Feature_FEATURE_SECURE_THREAT_DETECTION, valueMap) + case "secure_agentless_scanning": + accountFeatures.SecureAgentlessScanning = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "SecureAgentlessScanning", cloudauth.Feature_FEATURE_SECURE_AGENTLESS_SCANNING, valueMap) + case "monitor_cloud_metrics": + accountFeatures.MonitorCloudMetrics = &cloudauth.AccountFeature{} + setAccountFeature(accountFeatures, "MonitorCloudMetrics", cloudauth.Feature_FEATURE_MONITOR_CLOUD_METRICS, valueMap) + } + } + } + + return accountFeatures +} + +/* +This helper function aggregates the account components list that will be used in the +cloudauthAccountFromResourceData() function +*/ +func constructAccountComponents(accountComponents []*cloudauth.AccountComponent, data *schema.ResourceData) []*cloudauth.AccountComponent { provider := data.Get("cloud_provider_type").(string) for _, rc := range data.Get("components").([]interface{}) { @@ -276,7 +318,6 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc component := &cloudauth.AccountComponent{} for key, value := range resourceComponent { - if value != nil && value.(string) != "" { switch key { case "type": @@ -335,50 +376,24 @@ func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAc } } - components = append(components, component) + accountComponents = append(accountComponents, component) } - accountFeatures := &cloudauth.AccountFeatures{} - - featureData := data.Get("feature") - - var featureMap map[string]interface{} - - featureMap = convertSchemaSetToMap(featureData.(*schema.Set)) - - for name, value := range featureMap { - - if value != nil && value.(*schema.Set) != nil { + return accountComponents +} - var valueMap map[string]interface{} +func cloudauthAccountFromResourceData(data *schema.ResourceData) *v2.CloudauthAccountSecure { + accountComponents := constructAccountComponents([]*cloudauth.AccountComponent{}, data) - valueMap = convertSchemaSetToMap(value.(*schema.Set)) - switch name { - case "secure_config_posture": - accountFeatures.SecureConfigPosture = &cloudauth.AccountFeature{} - setAccountFeature(accountFeatures, "SecureConfigPosture", cloudauth.Feature_FEATURE_SECURE_CONFIG_POSTURE, valueMap) - case "secure_identity_entitlement": - accountFeatures.SecureIdentityEntitlement = &cloudauth.AccountFeature{} - setAccountFeature(accountFeatures, "SecureIdentityEntitlement", cloudauth.Feature_FEATURE_SECURE_IDENTITY_ENTITLEMENT, valueMap) - case "secure_threat_detection": - accountFeatures.SecureThreatDetection = &cloudauth.AccountFeature{} - setAccountFeature(accountFeatures, "SecureThreatDetection", cloudauth.Feature_FEATURE_SECURE_THREAT_DETECTION, valueMap) - case "secure_agentless_scanning": - accountFeatures.SecureAgentlessScanning = &cloudauth.AccountFeature{} - setAccountFeature(accountFeatures, "SecureAgentlessScanning", cloudauth.Feature_FEATURE_SECURE_AGENTLESS_SCANNING, valueMap) - case "monitor_cloud_metrics": - accountFeatures.MonitorCloudMetrics = &cloudauth.AccountFeature{} - setAccountFeature(accountFeatures, "MonitorCloudMetrics", cloudauth.Feature_FEATURE_MONITOR_CLOUD_METRICS, valueMap) - } - } - } + featureData := data.Get("feature").(interface{}) + accountFeatures := constructAccountFeatures(&cloudauth.AccountFeatures{}, featureData) return &v2.CloudauthAccountSecure{ CloudAccount: cloudauth.CloudAccount{ Enabled: data.Get("enabled").(bool), ProviderId: data.Get("cloud_provider_id").(string), Provider: cloudauth.Provider(cloudauth.Provider_value[data.Get("cloud_provider_type").(string)]), - Components: components, + Components: accountComponents, Feature: accountFeatures, }, } From 43a6439d0c8e6a6c152bf2937617e25585dea76f Mon Sep 17 00:00:00 2001 From: Ravina Dhruve Date: Tue, 19 Sep 2023 18:04:41 -0700 Subject: [PATCH 15/15] Parse and populate Service Prinicipal Private Key in metadata --- ...source_sysdig_secure_cloud_auth_account.go | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index 2dbc94622..1dc05ccda 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -2,6 +2,9 @@ package sysdig import ( "context" + b64 "encoding/base64" + "encoding/json" + "fmt" "reflect" "strings" "time" @@ -172,7 +175,6 @@ func resourceSysdigSecureCloudauthAccountCreate(ctx context.Context, data *schem } data.SetId(cloudauthAccount.Id) - data.Set("cloud_provider_type", cloudauthAccount.Provider.String()) return nil } @@ -347,14 +349,15 @@ func constructAccountComponents(accountComponents []*cloudauth.AccountComponent, } case "service_principal_metadata": // TODO: Make it more generic than just for GCP + service_principal_private_key := getServicePrincipalKeyObject(value.(string)) component.Metadata = &cloudauth.AccountComponent_ServicePrincipalMetadata{ ServicePrincipalMetadata: &cloudauth.ServicePrincipalMetadata{ Provider: &cloudauth.ServicePrincipalMetadata_Gcp{ Gcp: &cloudauth.ServicePrincipalMetadata_GCP{ Key: &cloudauth.ServicePrincipalMetadata_GCP_Key{ ProjectId: data.Get("cloud_provider_id").(string), - PrivateKeyId: "deadbeef", - PrivateKey: "cert thangs", + PrivateKeyId: service_principal_private_key["private_key_id"], + PrivateKey: service_principal_private_key["private_key"], }, }, }, @@ -414,3 +417,19 @@ func cloudauthAccountToResourceData(data *schema.ResourceData, cloudAccount *v2. } return nil } + +func getServicePrincipalKeyObject(value string) map[string]string { + bytes, err := b64.StdEncoding.DecodeString(value) + if err != nil { + fmt.Printf("Failed to decode service principal key: %v", err) + return nil + } + var privateKeyJSON map[string]string + err = json.Unmarshal(bytes, &privateKeyJSON) + if err != nil { + fmt.Printf("Failed to parse service principal key: %v", err) + return nil + } + + return privateKeyJSON +}