// Path: app/src/main/java/com/gatebuzz/oxfordapi/model/Wordlist.java
// public class Wordlist   {
//   @SerializedName("metadata")
//   private Map<String, Object> metadata = null;
// 
//   @SerializedName("results")
//   private List<WordlistResults> results = new ArrayList<WordlistResults>();
// 
//   public Wordlist metadata(Map<String, Object> metadata) {
//     this.metadata = metadata;
//     return this;
//   }
// 
//    /**
//    * Additional Information provided by OUP
//    * @return metadata
//   **/
//   public Map<String, Object> getMetadata() {
//     return metadata;
//   }
// 
//   public void setMetadata(Map<String, Object> metadata) {
//     this.metadata = metadata;
//   }
// 
//   public Wordlist results(List<WordlistResults> results) {
//     this.results = results;
//     return this;
//   }
// 
//   public Wordlist addResultsItem(WordlistResults resultsItem) {
//     this.results.add(resultsItem);
//     return this;
//   }
// 
//    /**
//    * A list of found words
//    * @return results
//   **/
//   public List<WordlistResults> getResults() {
//     return results;
//   }
// 
//   public void setResults(List<WordlistResults> results) {
//     this.results = results;
//   }
// 
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) {
//       return true;
//     }
//     if (o == null || getClass() != o.getClass()) {
//       return false;
//     }
//     Wordlist wordlist = (Wordlist) o;
//     return Objects.equals(this.metadata, wordlist.metadata) &&
//         Objects.equals(this.results, wordlist.results);
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hash(metadata, results);
//   }
// 
//   @Override
//   public String toString() {
//     StringBuilder sb = new StringBuilder();
//     sb.append("class Wordlist {\n");
//     
//     sb.append("    metadata: ").append(toIndentedString(metadata)).append("\n");
//     sb.append("    results: ").append(toIndentedString(results)).append("\n");
//     sb.append("}");
//     return sb.toString();
//   }
// 
//   /**
//    * Convert the given object to string with each line indented by 4 spaces
//    * (except the first line).
//    */
//   private String toIndentedString(Object o) {
//     if (o == null) {
//       return "null";
//     }
//     return o.toString().replace("\n", "\n    ");
//   }
// }


import com.gatebuzz.oxfordapi.model.Wordlist;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Path;
import retrofit2.http.Query;
package com.gatebuzz.oxfordapi.api;



@SuppressWarnings("unused")
public interface SearchApi {
  /**
   * Find results for search query.
   *  Retrieve available results for a search query and language.     &lt;div id&#x3D;\&quot;search\&quot;&gt;&lt;/div&gt; 
   * @param sourceLang IANA language code (required)
   * @param appId App ID Authentication Parameter (required)
   * @param appKey App Key Authentication Parameter (required)
   * @param q Search string. (optional, default to eye)
   * @param prefix Set prefix to true if you&#39;d like to get results only starting with search string. (optional, default to false)
   * @param regions Filter words with specific region(s) E.g., regions&#x3D;us. For now gb, us are available for en language. (optional)
   * @param limit Limit the number of results per response. Default and maximum limit is 5000. (optional)
   * @param offset Offset the start number of the result. (optional)
   * @return Call&lt;Wordlist&gt;
   */
  
  @GET("search/{source_lang}")
// Path: app/src/main/java/com/gatebuzz/oxfordapi/model/Wordlist.java
// public class Wordlist   {
//   @SerializedName("metadata")
//   private Map<String, Object> metadata = null;
// 
//   @SerializedName("results")
//   private List<WordlistResults> results = new ArrayList<WordlistResults>();
// 
//   public Wordlist metadata(Map<String, Object> metadata) {
//     this.metadata = metadata;
//     return this;
//   }
// 
//    /**
//    * Additional Information provided by OUP
//    * @return metadata
//   **/
//   public Map<String, Object> getMetadata() {
//     return metadata;
//   }
// 
//   public void setMetadata(Map<String, Object> metadata) {
//     this.metadata = metadata;
//   }
// 
//   public Wordlist results(List<WordlistResults> results) {
//     this.results = results;
//     return this;
//   }
// 
//   public Wordlist addResultsItem(WordlistResults resultsItem) {
//     this.results.add(resultsItem);
//     return this;
//   }
// 
//    /**
//    * A list of found words
//    * @return results
//   **/
//   public List<WordlistResults> getResults() {
//     return results;
//   }
// 
//   public void setResults(List<WordlistResults> results) {
//     this.results = results;
//   }
// 
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) {
//       return true;
//     }
//     if (o == null || getClass() != o.getClass()) {
//       return false;
//     }
//     Wordlist wordlist = (Wordlist) o;
//     return Objects.equals(this.metadata, wordlist.metadata) &&
//         Objects.equals(this.results, wordlist.results);
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hash(metadata, results);
//   }
// 
//   @Override
//   public String toString() {
//     StringBuilder sb = new StringBuilder();
//     sb.append("class Wordlist {\n");
//     
//     sb.append("    metadata: ").append(toIndentedString(metadata)).append("\n");
//     sb.append("    results: ").append(toIndentedString(results)).append("\n");
//     sb.append("}");
//     return sb.toString();
//   }
// 
//   /**
//    * Convert the given object to string with each line indented by 4 spaces
//    * (except the first line).
//    */
//   private String toIndentedString(Object o) {
//     if (o == null) {
//       return "null";
//     }
//     return o.toString().replace("\n", "\n    ");
//   }
// }


// Path: app/src/main/java/com/gatebuzz/oxfordapi/api/SearchApi.java
import com.gatebuzz.oxfordapi.model.Wordlist;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Path;
import retrofit2.http.Query;

package com.gatebuzz.oxfordapi.api;



@SuppressWarnings("unused")
public interface SearchApi {
  /**
   * Find results for search query.
   *  Retrieve available results for a search query and language.     &lt;div id&#x3D;\&quot;search\&quot;&gt;&lt;/div&gt; 
   * @param sourceLang IANA language code (required)
   * @param appId App ID Authentication Parameter (required)
   * @param appKey App Key Authentication Parameter (required)
   * @param q Search string. (optional, default to eye)
   * @param prefix Set prefix to true if you&#39;d like to get results only starting with search string. (optional, default to false)
   * @param regions Filter words with specific region(s) E.g., regions&#x3D;us. For now gb, us are available for en language. (optional)
   * @param limit Limit the number of results per response. Default and maximum limit is 5000. (optional)
   * @param offset Offset the start number of the result. (optional)
   * @return Call&lt;Wordlist&gt;
   */
  
  @GET("search/{source_lang}")
  Observable<Wordlist> searchSourceLangGet(