github.com/googleapis/api-linter@v1.65.2/rules/aip0164/resource_expire_time_field.go (about) 1 package aip0164 2 3 import ( 4 "github.com/googleapis/api-linter/lint" 5 "github.com/googleapis/api-linter/rules/internal/utils" 6 "github.com/jhump/protoreflect/desc" 7 ) 8 9 // Resources supporting soft delete must have an expire_time field. 10 var resourceExpireTimeField = &lint.MessageRule{ 11 Name: lint.NewRuleName(164, "resource-expire-time-field"), 12 OnlyIf: func(m *desc.MessageDescriptor) bool { 13 resource := m.GetName() 14 return utils.FindMethod(m.GetFile(), "Undelete"+resource) != nil 15 }, 16 LintMessage: func(m *desc.MessageDescriptor) []lint.Problem { 17 // for backwards compatibility, do not lint on expire_time. 18 // previously expire_time was the recommended term. 19 if m.FindFieldByName("expire_time") != nil { 20 return nil 21 } 22 if m.FindFieldByName("purge_time") != nil { 23 return nil 24 } 25 return []lint.Problem{{ 26 Message: "Resources supporting soft delete must have a `google.protobuf.Timestamp purge_time` field.", 27 Descriptor: m, 28 }} 29 }, 30 }