Property cannot be declared public because its type uses an internal type

Solution 1:

You have to declare the access level of the Content class public as well.

public class Content {
   // some code
}

As stated in the documentation:

A public variable cannot be defined as having an internal or private type, because the type might not be available everywhere that the public variable is used.

Classes are declared as internal by default, so you have to add the public keyword to make them public.

A similar rule exists for functions as well.

A function cannot have a higher access level than its parameter types and return type, because the function could be used in situations where its constituent types are not available to the surrounding code.

Solution 2:

Content must be declared as public too:

public class Content {
  …
}

Depending on your use-case you might declare Bucket as internal, too. Just omit the public keyword in this case.