Add a null check for all required parameters, or mark them as `@Nullable`.

Also annotate each class member variable which name does not match the serialized representation with: `@Named("serialized_name")`. This way, the `@ConstructorProperties` tells jclouds how to deserialize the object, and the `@Named` annotations will tell how to serialize, if needed (whether domain objects might not be directly serialized, annotations should be consistent).