// Path: src/main/java/com/mailosaur/models/UsageAccountLimits.java
// public class UsageAccountLimits {
//     /**
//      * Server limits.
//      */
//     @Key
//     private UsageAccountLimit servers;
// 
//     /**
//      * User limits.
//      */
//     @Key
//     private UsageAccountLimit users;
// 
//     /**
//      * Emails per day limits.
//      */
//     @Key
//     private UsageAccountLimit email;
// 
//     /**
//      * SMS message per month limits.
//      */
//     @Key
//     private UsageAccountLimit sms;
// 
//     /**
//      * Gets server limits.
//      *
//      * @return Server limits.
//      */
//     public UsageAccountLimit servers() {
//         return this.servers;
//     }
// 
//     /**
//      * Gets user limits.
//      *
//      * @return User limits.
//      */
//     public UsageAccountLimit users() {
//         return this.users;
//     }
// 
//     /**
//      * Gets emails per day limits.
//      *
//      * @return Emails per day limits.
//      */
//     public UsageAccountLimit email() {
//         return this.email;
//     }
// 
//     /**
//      * Gets SMS message per month limits.
//      *
//      * @return SMS message per month limits.
//      */
//     public UsageAccountLimit sms() {
//         return this.sms;
//     }
// }
// 
// Path: src/main/java/com/mailosaur/models/UsageTransactionListResult.java
// public class UsageTransactionListResult {
//     /**
//      * The individual transactions that have occurred.
//      */
//     @Key
//     private List<UsageTransaction> items;
// 
//     /**
//      * Gets the individual transactions that have occurred.
//      *
//      * @return The individual transactions that have occurred.
//      */
//     public List<UsageTransaction> items() {
//         return this.items;
//     }
// }


import java.io.IOException;
import java.util.Random;
import com.google.api.client.json.GenericJson;
import com.mailosaur.models.UsageAccountLimits;
import com.mailosaur.models.UsageTransactionListResult;
package com.mailosaur;




public class Usage {
    private MailosaurClient client;
    
    public Usage(MailosaurClient client) {
        this.client = client;
    }

    /**
     * Retrieve account usage limits. Details the current limits and usage for your account.
     * This endpoint requires authentication with an account-level API key.
     *
     * @throws MailosaurException Thrown if Mailosaur responds with an error.
     * @throws IOException Unexpected exception.
     * @return The current limits and usage for your account.
     */
// Path: src/main/java/com/mailosaur/models/UsageAccountLimits.java
// public class UsageAccountLimits {
//     /**
//      * Server limits.
//      */
//     @Key
//     private UsageAccountLimit servers;
// 
//     /**
//      * User limits.
//      */
//     @Key
//     private UsageAccountLimit users;
// 
//     /**
//      * Emails per day limits.
//      */
//     @Key
//     private UsageAccountLimit email;
// 
//     /**
//      * SMS message per month limits.
//      */
//     @Key
//     private UsageAccountLimit sms;
// 
//     /**
//      * Gets server limits.
//      *
//      * @return Server limits.
//      */
//     public UsageAccountLimit servers() {
//         return this.servers;
//     }
// 
//     /**
//      * Gets user limits.
//      *
//      * @return User limits.
//      */
//     public UsageAccountLimit users() {
//         return this.users;
//     }
// 
//     /**
//      * Gets emails per day limits.
//      *
//      * @return Emails per day limits.
//      */
//     public UsageAccountLimit email() {
//         return this.email;
//     }
// 
//     /**
//      * Gets SMS message per month limits.
//      *
//      * @return SMS message per month limits.
//      */
//     public UsageAccountLimit sms() {
//         return this.sms;
//     }
// }
// 
// Path: src/main/java/com/mailosaur/models/UsageTransactionListResult.java
// public class UsageTransactionListResult {
//     /**
//      * The individual transactions that have occurred.
//      */
//     @Key
//     private List<UsageTransaction> items;
// 
//     /**
//      * Gets the individual transactions that have occurred.
//      *
//      * @return The individual transactions that have occurred.
//      */
//     public List<UsageTransaction> items() {
//         return this.items;
//     }
// }


// Path: src/main/java/com/mailosaur/Usage.java
import java.io.IOException;
import java.util.Random;
import com.google.api.client.json.GenericJson;
import com.mailosaur.models.UsageAccountLimits;
import com.mailosaur.models.UsageTransactionListResult;

package com.mailosaur;




public class Usage {
    private MailosaurClient client;
    
    public Usage(MailosaurClient client) {
        this.client = client;
    }

    /**
     * Retrieve account usage limits. Details the current limits and usage for your account.
     * This endpoint requires authentication with an account-level API key.
     *
     * @throws MailosaurException Thrown if Mailosaur responds with an error.
     * @throws IOException Unexpected exception.
     * @return The current limits and usage for your account.
     */
    public UsageAccountLimits limits() throws IOException, MailosaurException {