// Path: src/main/java/co/omise/requests/Request.java
// public class Request<T extends OmiseObjectBase> {
//     private final String method;
//     private final HttpUrl path;
//     private final String contentType;
//     private final RequestBody payload;
//     private final ResponseType<T> type;
// 
//     /**
//      * Constructor for a new Request
//      *
//      * @param method      The HTTP method to use
//      * @param path        The {@link HttpUrl} for the url path of the HTTP request
//      * @param contentType The content type of HTTP request
//      * @param payload     Additional params passed as OkHttp {@link RequestBody} to the HTTP request
//      */
//     Request(String method, HttpUrl path, String contentType, RequestBody payload, ResponseType<T> type) {
//         this.method = method;
//         this.path = path;
//         this.contentType = contentType;
//         this.payload = payload;
//         this.type = type;
//     }
// 
//     /**
//      * Gets the HTTP method.
//      *
//      * @return the HTTP method
//      */
//     public String getMethod() {
//         return method;
//     }
// 
//     /**
//      * Gets url path for the specific API in the request.
//      *
//      * @return the url path as {@link HttpUrl}
//      */
//     public HttpUrl getPath() {
//         return path;
//     }
// 
//     /**
//      * Gets HTTP request content type.
//      *
//      * @return the content type as a String
//      */
//     public String getContentType() {
//         return contentType;
//     }
// 
//     /**
//      * Gets payload (request params).
//      *
//      * @return the payload as a {@link RequestBody}
//      */
//     public RequestBody getPayload() {
//         return payload;
//     }
// 
//     public ResponseType<T> getType() {
//         return type;
//     }
// }


import co.omise.models.*;
import co.omise.models.schedules.*;
import co.omise.requests.Request;
import org.joda.time.LocalDate;
import java.io.IOException;
package co.omise;



final class Example {
    private static final String OMISE_SKEY = "skey_test_123";

    void retrieveAccount() throws IOException, OmiseException, ClientException {
// Path: src/main/java/co/omise/requests/Request.java
// public class Request<T extends OmiseObjectBase> {
//     private final String method;
//     private final HttpUrl path;
//     private final String contentType;
//     private final RequestBody payload;
//     private final ResponseType<T> type;
// 
//     /**
//      * Constructor for a new Request
//      *
//      * @param method      The HTTP method to use
//      * @param path        The {@link HttpUrl} for the url path of the HTTP request
//      * @param contentType The content type of HTTP request
//      * @param payload     Additional params passed as OkHttp {@link RequestBody} to the HTTP request
//      */
//     Request(String method, HttpUrl path, String contentType, RequestBody payload, ResponseType<T> type) {
//         this.method = method;
//         this.path = path;
//         this.contentType = contentType;
//         this.payload = payload;
//         this.type = type;
//     }
// 
//     /**
//      * Gets the HTTP method.
//      *
//      * @return the HTTP method
//      */
//     public String getMethod() {
//         return method;
//     }
// 
//     /**
//      * Gets url path for the specific API in the request.
//      *
//      * @return the url path as {@link HttpUrl}
//      */
//     public HttpUrl getPath() {
//         return path;
//     }
// 
//     /**
//      * Gets HTTP request content type.
//      *
//      * @return the content type as a String
//      */
//     public String getContentType() {
//         return contentType;
//     }
// 
//     /**
//      * Gets payload (request params).
//      *
//      * @return the payload as a {@link RequestBody}
//      */
//     public RequestBody getPayload() {
//         return payload;
//     }
// 
//     public ResponseType<T> getType() {
//         return type;
//     }
// }


// Path: src/main/java/co/omise/Example.java
import co.omise.models.*;
import co.omise.models.schedules.*;
import co.omise.requests.Request;
import org.joda.time.LocalDate;
import java.io.IOException;

package co.omise;



final class Example {
    private static final String OMISE_SKEY = "skey_test_123";

    void retrieveAccount() throws IOException, OmiseException, ClientException {
        Request<Account> getAccountRequest = new Account.GetRequestBuilder().build();