55 "fmt"
66 "strings"
77 "sync"
8+ "time"
89
910 "golang.org/x/sync/errgroup"
1011
@@ -40,7 +41,8 @@ type resourceTree struct {
4041 resourceClient *resourcemanager.APIClient
4142 member string
4243
43- projectLifecycleState *string
44+ projectLifecycleState *string
45+ projectCreationTimeAfter *time.Time
4446
4547 roots map[string]*node
4648}
@@ -57,10 +59,11 @@ func newResourceTree(resourceClient *resourcemanager.APIClient, authClient *auth
5759 member = *model.Member
5860 }
5961 tree := &resourceTree{
60- member: member,
61- resourceClient: resourceClient,
62- authClient: authClient,
63- roots: map[string]*node{},
62+ member: member,
63+ resourceClient: resourceClient,
64+ authClient: authClient,
65+ roots: map[string]*node{},
66+ projectCreationTimeAfter: model.CreationTimeAfter,
6467 }
6568 if model.LifecycleState != "" {
6669 tree.projectLifecycleState = &model.LifecycleState
@@ -151,6 +154,9 @@ func (r *resourceTree) getNodeProjects(ctx context.Context, parent *node) error
151154 if r.projectLifecycleState != nil && *r.projectLifecycleState != strings.ToLower(string(proj.GetLifecycleState())) {
152155 return nil
153156 }
157+ if r.projectCreationTimeAfter != nil && !proj.CreationTime.After(*r.projectCreationTimeAfter) {
158+ return nil
159+ }
154160 projNode := &node{
155161 resourceID: proj.GetProjectId(),
156162 typ: resourceTypeProject,
0 commit comments