code: func (service *GCSService) ComposeObjects(ctx context.Context, params GCSComposeParams) error {
  	err := service.recursiveCompose(ctx, params.Sources, params, 0)
  
  	if err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // ComposeObjects composes multiple GCS objects in to a single object.
  // Since GCS limits composition to a max of 32 objects, additional logic
  // has been added to chunk objects in to groups of 32 and then recursively
  // compose those objects together.