/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 */

package com.microsoft.azure.applicationinsights.query.models;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * Client info for an event result.
 */
public class EventsClientInfo {
    /**
     * Model of the client.
     */
    @JsonProperty(value = "model")
    private String model;

    /**
     * Operating system of the client.
     */
    @JsonProperty(value = "os")
    private String os;

    /**
     * Type of the client.
     */
    @JsonProperty(value = "type")
    private String type;

    /**
     * Browser of the client.
     */
    @JsonProperty(value = "browser")
    private String browser;

    /**
     * IP address of the client.
     */
    @JsonProperty(value = "ip")
    private String ip;

    /**
     * City of the client.
     */
    @JsonProperty(value = "city")
    private String city;

    /**
     * State or province of the client.
     */
    @JsonProperty(value = "stateOrProvince")
    private String stateOrProvince;

    /**
     * Country or region of the client.
     */
    @JsonProperty(value = "countryOrRegion")
    private String countryOrRegion;

    /**
     * Get model of the client.
     *
     * @return the model value
     */
    public String model() {
        return this.model;
    }

    /**
     * Set model of the client.
     *
     * @param model the model value to set
     * @return the EventsClientInfo object itself.
     */
    public EventsClientInfo withModel(String model) {
        this.model = model;
        return this;
    }

    /**
     * Get operating system of the client.
     *
     * @return the os value
     */
    public String os() {
        return this.os;
    }

    /**
     * Set operating system of the client.
     *
     * @param os the os value to set
     * @return the EventsClientInfo object itself.
     */
    public EventsClientInfo withOs(String os) {
        this.os = os;
        return this;
    }

    /**
     * Get type of the client.
     *
     * @return the type value
     */
    public String type() {
        return this.type;
    }

    /**
     * Set type of the client.
     *
     * @param type the type value to set
     * @return the EventsClientInfo object itself.
     */
    public EventsClientInfo withType(String type) {
        this.type = type;
        return this;
    }

    /**
     * Get browser of the client.
     *
     * @return the browser value
     */
    public String browser() {
        return this.browser;
    }

    /**
     * Set browser of the client.
     *
     * @param browser the browser value to set
     * @return the EventsClientInfo object itself.
     */
    public EventsClientInfo withBrowser(String browser) {
        this.browser = browser;
        return this;
    }

    /**
     * Get iP address of the client.
     *
     * @return the ip value
     */
    public String ip() {
        return this.ip;
    }

    /**
     * Set iP address of the client.
     *
     * @param ip the ip value to set
     * @return the EventsClientInfo object itself.
     */
    public EventsClientInfo withIp(String ip) {
        this.ip = ip;
        return this;
    }

    /**
     * Get city of the client.
     *
     * @return the city value
     */
    public String city() {
        return this.city;
    }

    /**
     * Set city of the client.
     *
     * @param city the city value to set
     * @return the EventsClientInfo object itself.
     */
    public EventsClientInfo withCity(String city) {
        this.city = city;
        return this;
    }

    /**
     * Get state or province of the client.
     *
     * @return the stateOrProvince value
     */
    public String stateOrProvince() {
        return this.stateOrProvince;
    }

    /**
     * Set state or province of the client.
     *
     * @param stateOrProvince the stateOrProvince value to set
     * @return the EventsClientInfo object itself.
     */
    public EventsClientInfo withStateOrProvince(String stateOrProvince) {
        this.stateOrProvince = stateOrProvince;
        return this;
    }

    /**
     * Get country or region of the client.
     *
     * @return the countryOrRegion value
     */
    public String countryOrRegion() {
        return this.countryOrRegion;
    }

    /**
     * Set country or region of the client.
     *
     * @param countryOrRegion the countryOrRegion value to set
     * @return the EventsClientInfo object itself.
     */
    public EventsClientInfo withCountryOrRegion(String countryOrRegion) {
        this.countryOrRegion = countryOrRegion;
        return this;
    }

}
