diff --git a/api/types/accesslist/convert/v1/member.go b/api/types/accesslist/convert/v1/member.go index 8fe6e596db7..9aec8cee5bc 100644 --- a/api/types/accesslist/convert/v1/member.go +++ b/api/types/accesslist/convert/v1/member.go @@ -37,13 +37,13 @@ func FromMemberProto(msg *accesslistv1.Member, opts ...MemberOption) (*accesslis return nil, trace.BadParameter("spec is missing") } - member, err := accesslist.NewAccessListMember(headerv1.FromMetadataProto(msg.Header.Metadata), accesslist.AccessListMemberSpec{ - AccessList: msg.Spec.AccessList, - Name: msg.Spec.Name, - Joined: msg.Spec.Joined.AsTime(), - Expires: msg.Spec.Expires.AsTime(), - Reason: msg.Spec.Reason, - AddedBy: msg.Spec.AddedBy, + member, err := accesslist.NewAccessListMember(headerv1.FromMetadataProto(msg.GetHeader().GetMetadata()), accesslist.AccessListMemberSpec{ + AccessList: msg.GetSpec().GetAccessList(), + Name: msg.GetSpec().GetName(), + Joined: msg.GetSpec().GetJoined().AsTime(), + Expires: msg.GetSpec().GetExpires().AsTime(), + Reason: msg.GetSpec().GetReason(), + AddedBy: msg.GetSpec().GetAddedBy(), // Set it to empty as default. // Must provide as options to set it with the provided value. IneligibleStatus: "", diff --git a/api/types/accesslist/convert/v1/review.go b/api/types/accesslist/convert/v1/review.go index 5854de458fb..e5db9149669 100644 --- a/api/types/accesslist/convert/v1/review.go +++ b/api/types/accesslist/convert/v1/review.go @@ -34,35 +34,35 @@ func FromReviewProto(msg *accesslistv1.Review) (*accesslist.Review, error) { return nil, trace.BadParameter("access list review message is nil") } - if msg.Spec == nil { + if msg.GetSpec() == nil { return nil, trace.BadParameter("spec is missing") } // Manually check for the presence of the time so that we can be sure that the review date is // zero if the proto message's review date is nil. var reviewDate time.Time - if msg.Spec.ReviewDate != nil { - reviewDate = msg.Spec.ReviewDate.AsTime() + if msg.GetSpec().GetReviewDate() != nil { + reviewDate = msg.GetSpec().GetReviewDate().AsTime() } var reviewChanges accesslist.ReviewChanges - if msg.Spec.Changes != nil { - if msg.Spec.Changes.MembershipRequirementsChanged != nil { + if msg.GetSpec().GetChanges() != nil { + if msg.GetSpec().GetChanges().GetMembershipRequirementsChanged() != nil { reviewChanges.MembershipRequirementsChanged = &accesslist.Requires{ - Roles: msg.Spec.Changes.MembershipRequirementsChanged.Roles, - Traits: traitv1.FromProto(msg.Spec.Changes.MembershipRequirementsChanged.Traits), + Roles: msg.GetSpec().GetChanges().GetMembershipRequirementsChanged().GetRoles(), + Traits: traitv1.FromProto(msg.GetSpec().GetChanges().GetMembershipRequirementsChanged().GetTraits()), } } - reviewChanges.RemovedMembers = msg.Spec.Changes.RemovedMembers - reviewChanges.ReviewFrequencyChanged = accesslist.ReviewFrequency(msg.Spec.Changes.ReviewFrequencyChanged) - reviewChanges.ReviewDayOfMonthChanged = accesslist.ReviewDayOfMonth(msg.Spec.Changes.ReviewDayOfMonthChanged) + reviewChanges.RemovedMembers = msg.GetSpec().GetChanges().GetRemovedMembers() + reviewChanges.ReviewFrequencyChanged = accesslist.ReviewFrequency(msg.GetSpec().GetChanges().GetReviewFrequencyChanged()) + reviewChanges.ReviewDayOfMonthChanged = accesslist.ReviewDayOfMonth(msg.GetSpec().GetChanges().GetReviewDayOfMonthChanged()) } - member, err := accesslist.NewReview(headerv1.FromMetadataProto(msg.Header.Metadata), accesslist.ReviewSpec{ - AccessList: msg.Spec.AccessList, - Reviewers: msg.Spec.Reviewers, + member, err := accesslist.NewReview(headerv1.FromMetadataProto(msg.GetHeader().GetMetadata()), accesslist.ReviewSpec{ + AccessList: msg.GetSpec().GetAccessList(), + Reviewers: msg.GetSpec().GetReviewers(), ReviewDate: reviewDate, - Notes: msg.Spec.Notes, + Notes: msg.GetSpec().GetNotes(), Changes: reviewChanges, }) if err != nil { diff --git a/api/types/discoveryconfig/convert/v1/discoveryconfig.go b/api/types/discoveryconfig/convert/v1/discoveryconfig.go index 4c5083a975f..ff5aed11b17 100644 --- a/api/types/discoveryconfig/convert/v1/discoveryconfig.go +++ b/api/types/discoveryconfig/convert/v1/discoveryconfig.go @@ -34,48 +34,48 @@ func FromProto(msg *discoveryconfigv1.DiscoveryConfig) (*discoveryconfig.Discove return nil, trace.BadParameter("discovery config message is nil") } - if msg.Spec == nil { + if msg.GetSpec() == nil { return nil, trace.BadParameter("spec is missing") } - if msg.Spec.DiscoveryGroup == "" { + if msg.GetSpec().GetDiscoveryGroup() == "" { return nil, trace.BadParameter("discovery group is missing") } - awsMatchers := make([]types.AWSMatcher, 0, len(msg.Spec.Aws)) - for _, m := range msg.Spec.Aws { + awsMatchers := make([]types.AWSMatcher, 0, len(msg.GetSpec().GetAws())) + for _, m := range msg.GetSpec().GetAws() { awsMatchers = append(awsMatchers, *m) } - azureMatchers := make([]types.AzureMatcher, 0, len(msg.Spec.Azure)) - for _, m := range msg.Spec.Azure { + azureMatchers := make([]types.AzureMatcher, 0, len(msg.GetSpec().GetAzure())) + for _, m := range msg.GetSpec().GetAzure() { azureMatchers = append(azureMatchers, *m) } - gcpMatchers := make([]types.GCPMatcher, 0, len(msg.Spec.Gcp)) - for _, m := range msg.Spec.Gcp { + gcpMatchers := make([]types.GCPMatcher, 0, len(msg.GetSpec().GetGcp())) + for _, m := range msg.GetSpec().GetGcp() { gcpMatchers = append(gcpMatchers, *m) } - kubeMatchers := make([]types.KubernetesMatcher, 0, len(msg.Spec.Kube)) - for _, m := range msg.Spec.Kube { + kubeMatchers := make([]types.KubernetesMatcher, 0, len(msg.GetSpec().GetKube())) + for _, m := range msg.GetSpec().GetKube() { kubeMatchers = append(kubeMatchers, *m) } discoveryConfig, err := discoveryconfig.NewDiscoveryConfig( - headerv1.FromMetadataProto(msg.Header.Metadata), + headerv1.FromMetadataProto(msg.GetHeader().GetMetadata()), discoveryconfig.Spec{ - DiscoveryGroup: msg.Spec.DiscoveryGroup, + DiscoveryGroup: msg.GetSpec().GetDiscoveryGroup(), AWS: awsMatchers, Azure: azureMatchers, GCP: gcpMatchers, Kube: kubeMatchers, - AccessGraph: msg.Spec.AccessGraph, + AccessGraph: msg.GetSpec().GetAccessGraph(), }, ) if err != nil { return nil, trace.Wrap(err) } - discoveryConfig.Status = StatusFromProto(msg.Status) + discoveryConfig.Status = StatusFromProto(msg.GetStatus()) return discoveryConfig, nil } diff --git a/api/types/externalauditstorage/convert/v1/externalauditstorage.go b/api/types/externalauditstorage/convert/v1/externalauditstorage.go index c97e21a48fa..54d1fbd66e3 100644 --- a/api/types/externalauditstorage/convert/v1/externalauditstorage.go +++ b/api/types/externalauditstorage/convert/v1/externalauditstorage.go @@ -31,20 +31,20 @@ func FromProtoDraft(in *externalauditstoragev1.ExternalAuditStorage) (*externala return nil, trace.BadParameter("External Audit Storage message is nil") } - if in.Spec == nil { + if in.GetSpec() == nil { return nil, trace.BadParameter("spec is missing") } - externalAuditStorage, err := externalauditstorage.NewDraftExternalAuditStorage(headerv1.FromMetadataProto(in.Header.Metadata), externalauditstorage.ExternalAuditStorageSpec{ - IntegrationName: in.Spec.IntegrationName, - PolicyName: in.Spec.PolicyName, - Region: in.Spec.Region, - SessionRecordingsURI: in.Spec.SessionRecordingsUri, - AthenaWorkgroup: in.Spec.AthenaWorkgroup, - GlueDatabase: in.Spec.GlueDatabase, - GlueTable: in.Spec.GlueTable, - AuditEventsLongTermURI: in.Spec.AuditEventsLongTermUri, - AthenaResultsURI: in.Spec.AthenaResultsUri, + externalAuditStorage, err := externalauditstorage.NewDraftExternalAuditStorage(headerv1.FromMetadataProto(in.GetHeader().GetMetadata()), externalauditstorage.ExternalAuditStorageSpec{ + IntegrationName: in.GetSpec().GetIntegrationName(), + PolicyName: in.GetSpec().GetPolicyName(), + Region: in.GetSpec().GetRegion(), + SessionRecordingsURI: in.GetSpec().GetSessionRecordingsUri(), + AthenaWorkgroup: in.GetSpec().GetAthenaWorkgroup(), + GlueDatabase: in.GetSpec().GetGlueDatabase(), + GlueTable: in.GetSpec().GetGlueTable(), + AuditEventsLongTermURI: in.GetSpec().GetAuditEventsLongTermUri(), + AthenaResultsURI: in.GetSpec().GetAthenaResultsUri(), }) if err != nil { return nil, trace.Wrap(err) @@ -59,20 +59,20 @@ func FromProtoCluster(in *externalauditstoragev1.ExternalAuditStorage) (*externa return nil, trace.BadParameter("External Audit Storage message is nil") } - if in.Spec == nil { + if in.GetSpec() == nil { return nil, trace.BadParameter("spec is missing") } - externalAuditStorage, err := externalauditstorage.NewClusterExternalAuditStorage(headerv1.FromMetadataProto(in.Header.Metadata), externalauditstorage.ExternalAuditStorageSpec{ - IntegrationName: in.Spec.IntegrationName, - PolicyName: in.Spec.PolicyName, - Region: in.Spec.Region, - SessionRecordingsURI: in.Spec.SessionRecordingsUri, - AthenaWorkgroup: in.Spec.AthenaWorkgroup, - GlueDatabase: in.Spec.GlueDatabase, - GlueTable: in.Spec.GlueTable, - AuditEventsLongTermURI: in.Spec.AuditEventsLongTermUri, - AthenaResultsURI: in.Spec.AthenaResultsUri, + externalAuditStorage, err := externalauditstorage.NewClusterExternalAuditStorage(headerv1.FromMetadataProto(in.GetHeader().GetMetadata()), externalauditstorage.ExternalAuditStorageSpec{ + IntegrationName: in.GetSpec().GetIntegrationName(), + PolicyName: in.GetSpec().GetPolicyName(), + Region: in.GetSpec().GetRegion(), + SessionRecordingsURI: in.GetSpec().GetSessionRecordingsUri(), + AthenaWorkgroup: in.GetSpec().GetAthenaWorkgroup(), + GlueDatabase: in.GetSpec().GetGlueDatabase(), + GlueTable: in.GetSpec().GetGlueTable(), + AuditEventsLongTermURI: in.GetSpec().GetAuditEventsLongTermUri(), + AthenaResultsURI: in.GetSpec().GetAthenaResultsUri(), }) if err != nil { return nil, trace.Wrap(err) diff --git a/api/types/header/convert/v1/header.go b/api/types/header/convert/v1/header.go index d8493d848a1..670a1138c08 100644 --- a/api/types/header/convert/v1/header.go +++ b/api/types/header/convert/v1/header.go @@ -48,18 +48,21 @@ func ToResourceHeaderProto(resourceHeader header.ResourceHeader) *headerv1.Resou // FromMetadataProto converts v1 metadata into an internal metadata object. func FromMetadataProto(msg *headerv1.Metadata) header.Metadata { + if msg == nil { + return header.Metadata{} + } // We map the zero protobuf time (nil) to the zero go time. var expires time.Time - if msg.Expires != nil { - expires = msg.Expires.AsTime() + if msg.GetExpires() != nil { + expires = msg.GetExpires().AsTime() } return header.Metadata{ - Name: msg.Name, - Description: msg.Description, - Labels: msg.Labels, + Name: msg.GetName(), + Description: msg.GetDescription(), + Labels: msg.GetLabels(), Expires: expires, - Revision: msg.Revision, + Revision: msg.GetRevision(), } } diff --git a/api/types/secreports/convert/v1/secreport.go b/api/types/secreports/convert/v1/secreport.go index eff3c64aed2..a24b24edbfc 100644 --- a/api/types/secreports/convert/v1/secreport.go +++ b/api/types/secreports/convert/v1/secreport.go @@ -34,7 +34,7 @@ func FromProtoAuditQuery(in *secreportsv1.AuditQuery) (*secreports.AuditQuery, e Query: in.GetSpec().GetQuery(), Description: in.GetSpec().GetDescription(), } - out, err := secreports.NewAuditQuery(headerv1.FromMetadataProto(in.Header.Metadata), spec) + out, err := secreports.NewAuditQuery(headerv1.FromMetadataProto(in.GetHeader().GetMetadata()), spec) if err != nil { return nil, trace.Wrap(err) } @@ -76,7 +76,7 @@ func FromProtoReport(in *secreportsv1.Report) (*secreports.Report, error) { Title: in.GetSpec().GetTitle(), Version: in.GetSpec().GetVersion(), } - out, err := secreports.NewReport(headerv1.FromMetadataProto(in.Header.Metadata), spec) + out, err := secreports.NewReport(headerv1.FromMetadataProto(in.GetHeader().GetMetadata()), spec) if err != nil { return nil, trace.Wrap(err) } diff --git a/api/types/userloginstate/convert/v1/user_login_state.go b/api/types/userloginstate/convert/v1/user_login_state.go index 91c423ab10e..1d0b74fe735 100644 --- a/api/types/userloginstate/convert/v1/user_login_state.go +++ b/api/types/userloginstate/convert/v1/user_login_state.go @@ -32,13 +32,13 @@ func FromProto(msg *userloginstatev1.UserLoginState) (*userloginstate.UserLoginS return nil, trace.BadParameter("spec is missing") } - uls, err := userloginstate.New(headerv1.FromMetadataProto(msg.Header.Metadata), userloginstate.Spec{ - OriginalRoles: msg.Spec.GetOriginalRoles(), - OriginalTraits: traitv1.FromProto(msg.Spec.OriginalTraits), - Roles: msg.Spec.Roles, - Traits: traitv1.FromProto(msg.Spec.Traits), - UserType: types.UserType(msg.Spec.UserType), - GitHubIdentity: externalIdentityFromProto(msg.Spec.GitHubIdentity), + uls, err := userloginstate.New(headerv1.FromMetadataProto(msg.GetHeader().GetMetadata()), userloginstate.Spec{ + OriginalRoles: msg.GetSpec().GetOriginalRoles(), + OriginalTraits: traitv1.FromProto(msg.GetSpec().GetOriginalTraits()), + Roles: msg.GetSpec().GetRoles(), + Traits: traitv1.FromProto(msg.GetSpec().GetTraits()), + UserType: types.UserType(msg.GetSpec().GetUserType()), + GitHubIdentity: externalIdentityFromProto(msg.GetSpec().GetGitHubIdentity()), }) return uls, trace.Wrap(err) diff --git a/tool/tctl/common/clusterconfig/accessgraphsettings.go b/tool/tctl/common/clusterconfig/accessgraphsettings.go index 939b8ae23ef..360e3405103 100644 --- a/tool/tctl/common/clusterconfig/accessgraphsettings.go +++ b/tool/tctl/common/clusterconfig/accessgraphsettings.go @@ -100,7 +100,7 @@ func ProtoToResource(set *clusterconfigpb.AccessGraphSettings) (*AccessGraphSett ResourceHeader: types.ResourceHeader{ Kind: set.Kind, Version: set.Version, - Metadata: legacy.FromHeaderMetadata(headerv1.FromMetadataProto(set.Metadata)), + Metadata: legacy.FromHeaderMetadata(headerv1.FromMetadataProto(set.GetMetadata())), }, Spec: accessGraphSettingsSpec{ SecretsScanConfig: conf,