private PortabilityJob createJob(
      String encodedSessionKey,
      DataVertical dataType,
      String exportService,
      String importService,
      Optional<ExportInformation> exportInformation,
      String encryptionScheme) throws IOException {

    // Job auth data
    JobAuthorization jobAuthorization =
        JobAuthorization.builder()
            .setSessionSecretKey(encodedSessionKey)
            .setEncryptionScheme(encryptionScheme)
            .setState(JobAuthorization.State.INITIAL)
            .build();

    PortabilityJob.Builder builder =
        PortabilityJob.builder()
            .setTransferDataType(dataType)
            .setExportService(exportService)
            .setImportService(importService)
            .setAndValidateJobAuthorization(jobAuthorization);
    if (exportInformation.isPresent()) {
      builder.setExportInformation(objectMapper.writeValueAsString(exportInformation.get()));
    }

    return builder.build();
  }
Populates the initial state of the {@link PortabilityJob} instance.
portability-api/src/main/java/org/datatransferproject/api/action/transfer/CreateTransferJobAction.java