in providers/gcp/gcs.go [36:130]
func (g *GcsGenerator) createBucketsResources(ctx context.Context, gcsService *storage.Service) []terraformutils.Resource {
resources := []terraformutils.Resource{}
bucketList := gcsService.Buckets.List(g.GetArgs()["project"].(string))
if err := bucketList.Pages(ctx, func(page *storage.Buckets) error {
for _, bucket := range page.Items {
resources = append(resources, terraformutils.NewResource(
bucket.Name,
bucket.Name,
"google_storage_bucket",
g.ProviderName,
map[string]string{
"name": bucket.Name,
"force_destroy": "false",
},
GcsAllowEmptyValues,
GcsAdditionalFields,
))
resources = append(resources, terraformutils.NewResource(
bucket.Name,
bucket.Name,
"google_storage_bucket_acl",
g.ProviderName,
map[string]string{
"bucket": bucket.Name,
"role_entity.#": strconv.Itoa(len(bucket.Acl)),
},
GcsAllowEmptyValues,
GcsAdditionalFields,
))
resources = append(resources, terraformutils.NewResource(
bucket.Name,
bucket.Name,
"google_storage_default_object_acl",
g.ProviderName,
map[string]string{
"bucket": bucket.Name,
"role_entity.#": strconv.Itoa(len(bucket.Acl)),
},
GcsAllowEmptyValues,
GcsAdditionalFields,
))
resources = append(resources, terraformutils.NewResource(
bucket.Name,
bucket.Name,
"google_storage_bucket_iam_policy",
g.ProviderName,
map[string]string{
"bucket": bucket.Name,
},
GcsAllowEmptyValues,
GcsAdditionalFields,
))
if iam, err := gcsService.Buckets.GetIamPolicy(bucket.Name).Do(); err == nil {
for _, binding := range iam.Bindings {
resources = append(resources, terraformutils.NewResource(
bucket.Name,
bucket.Name,
"google_storage_bucket_iam_binding",
g.ProviderName,
map[string]string{
"bucket": bucket.Name,
"role": binding.Role,
},
GcsAllowEmptyValues,
GcsAdditionalFields,
))
for _, member := range binding.Members {
resources = append(resources, terraformutils.NewResource(
bucket.Name,
bucket.Name,
"google_storage_bucket_iam_member",
g.ProviderName,
map[string]string{
"bucket": bucket.Name,
"role": binding.Role,
"member": member,
},
GcsAllowEmptyValues,
GcsAdditionalFields,
))
}
}
}
resources = append(resources, g.createNotificationResources(gcsService, bucket)...)
}
return nil
}); err != nil {
log.Println(err)
}
return resources
}