docs: public ServiceCall<Profile> profile(ProfileOptions profileOptions) {
      Validator.notNull(profileOptions, "profileOptions cannot be null");
      String[] pathSegments = { "v3/profile" };
      RequestBuilder builder = RequestBuilder.post(RequestBuilder.constructHttpUrl(getEndPoint(), pathSegments));
      builder.query("version", versionDate);
      Map<String, String> sdkHeaders = SdkCommon.getSdkHeaders("personality_insights", "v3", "profile");
      for (Entry<String, String> header : sdkHeaders.entrySet()) {
        builder.header(header.getKey(), header.getValue());
      }
      builder.header("Accept", "application/json");
      if (profileOptions.contentLanguage() != null) {
        builder.header("Content-Language", profileOptions.contentLanguage());
      }
      if (profileOptions.acceptLanguage() != null) {
        builder.header("Accept-Language", profileOptions.acceptLanguage());
      }
      if (profileOptions.contentType() != null) {
        builder.header("Content-Type", profileOptions.contentType());
      }
      if (profileOptions.rawScores() != null) {
        builder.query("raw_scores", String.valueOf(profileOptions.rawScores()));
      }
      if (profileOptions.csvHeaders() != null) {
        builder.query("csv_headers", String.valueOf(profileOptions.csvHeaders()));
      }
      if (profileOptions.consumptionPreferences() != null) {
        builder.query("consumption_preferences", String.valueOf(profileOptions.consumptionPreferences()));
      }
      builder.bodyContent(profileOptions.contentType(), profileOptions.content(), null, profileOptions.body());
      return createServiceCall(builder.build(), ResponseConverterUtils.getObject(Profile.class));
    }