func NewIAMClient()

in sharedlibraries/iam/iam.go [48:72]


func NewIAMClient(ctx context.Context, opts ...option.ClientOption) (*IAM, error) {
	computeService, err := compute.NewService(ctx, opts...)
	if err != nil {
		return nil, fmt.Errorf("error creating GCE client: %w", err)
	}
	smClient, err := secretmanager.NewClient(ctx, opts...)
	if err != nil {
		return nil, fmt.Errorf("error creating secret manager client: %w", err)
	}
	crmService, err := cloudresourcemanager.NewService(ctx, opts...)
	if err != nil {
		return nil, fmt.Errorf("error creating cloud resource manager client: %w", err)
	}
	storageClient, err := storage.NewClient(ctx, opts...)
	if err != nil {
		return nil, fmt.Errorf("error creating storage client: %w", err)
	}
	return &IAM{
		instancesService: computeService.Instances,
		disksService:     computeService.Disks,
		projectsService:  crmService.Projects,
		smClient:         smClient,
		storageClient:    storageClient,
	}, nil
}