Decreasing object size until a certain size over time?

I want to decrease the size of an object in the y-axis slowly over time and until a certain scale. How can I do it? Thank you.

public GameObject objectToScale;
public float scaleSpeed;
public float minSize;

    void Update()
    {
        if(objectToScale.transform.localScale.y <= minSize)
        {
                 objectToScale.transform.localScale = new Vector3(objectToScale.transform.localScale.x,objectToScale.transform.localScale.y + Time.deltaTime * scaleSpeed,objectToScale.transform.localScale.z)
        }
    }

You will have to do something close to that ^
some things might have to be changed (for example, if its a 2D game, it would use Vector2)
Sorry for the short answer, have to go in a few mins. hope this helps you!
Goodluck!

You should be able to set the local scale of the gameobject directly. So, a coroutine would do nicely do perform the task every frame, where it increasingly lowers the local scale.

E.g., something like this would work:

IEnumerator shrinkObject(GameObject g, float scaleRate, float minScale)
{
	float scale_y = g.transform.localScale.y;
	while(scale_y > minScale)	//	while the object is larger than desired
	{
		scale_y -= scaleRate * Time.deltaTime;	//	calculate the new scale relative to the rate
		Vector3 scale = g.transform.localScale;
		scale.y = scale_y;
		g.transform.localScale = scale;
		yield return null;	//	wait a frame
	}
	yield break;
}