docs: public CreateImageResponse createImage(CreateImageRequest request) {
          checkNotNull(request, "request should not be null.");
          if (Strings.isNullOrEmpty(request.getClientToken())) {
              request.setClientToken(this.generateClientToken());
          }
          checkStringNotEmpty(request.getImageName(), "request imageName should not be empty.");
          if (Strings.isNullOrEmpty(request.getInstanceId()) && Strings.isNullOrEmpty(request.getSnapshotId())) {
              throw new IllegalArgumentException("request instanceId or snapshotId should not be empty .");
          }
          InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST, IMAGE_PREFIX);
          internalRequest.addParameter("clientToken", request.getClientToken());
          fillPayload(internalRequest, request);
          return invokeHttpClient(internalRequest, CreateImageResponse.class);
      }