protected ImageInfo(
     final OwnerFullName ownerFullName,
     final String imageId,
     final ImageMetadata.Type imageType,
     final String imageName,
     final String imageDescription,
     final Long imageSizeBytes,
     final ImageMetadata.Architecture arch,
     final ImageMetadata.Platform platform) {
   this(ownerFullName, ResourceIdentifiers.tryNormalize().apply(imageId));
   checkParam(imageName, notNullValue());
   checkParam(imageType, notNullValue());
   checkParam(imageSizeBytes, notNullValue());
   checkParam(arch, notNullValue());
   checkParam(platform, notNullValue());
   this.setState(ImageMetadata.State.pending);
   this.imageType = imageType;
   this.imageName = imageName;
   this.description = imageDescription;
   this.imageSizeBytes = imageSizeBytes;
   this.architecture = arch;
   this.platform = platform;
   this.imagePublic = ImageConfiguration.getInstance().getDefaultVisibility();
 }
 ImageInfo(final String imageId) {
   this();
   this.setDisplayName(ResourceIdentifiers.tryNormalize().apply(imageId));
 }