Refer attributes from another module

Hi I have following folder structure

├── module
│   ├── serviceaccount
│       ├── main.tf
│       ├── output.tf
│       └── variables.tf   
└── staging
        ├── iam
        │  ├── main.tf
        │  ├── output.tf
        │  └── variables.tf
        ├── svc
             ├── main.tf
             ├── output.tf
             └── variables.tf

staging/svc/main.tf file has a module -

module "serviceaccount-data" {
  gcp_project_id    = "XXX"
  gcp_sa_account_id = "XXX"
  source            = "../../modules/serviceaccount"
}

module/serviceaccount/main.tf is a combination of resources of gcp svc like-

resource "google_service_account" "service_account" {
  project      = var.gcp_project_id
  account_id   = var.gcp_sa_account_id
  display_name = var.gcp_sa_account_id
}

// few more  , this is working set of resources 

I would like to access ID of staging/svc/main.tf serviceaccount once created in gcp inside staging/iam/main.tf . How can I reference it ?

I am always stuck at - resource not defined at root module .
Please guide .

Hi community , please clear my doubt in here . It has become quite urgent to resolve this or will try to change folder structure .
Tagging who commented on similar issue -
@kpanic9
@apparentlymart