/******************************************************************************* 
 *  Copyright 2007 Amazon Technologies, Inc.  
 *  Licensed under the Apache License, Version 2.0 (the "License"); 
 *  
 *  You may not use this file except in compliance with the License. 
 *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
 *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
 *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
 *  specific language governing permissions and limitations under the License.
 * ***************************************************************************** 
 *    __  _    _  ___ 
 *   (  )( \/\/ )/ __)
 *   /__\ \    / \__ \
 *  (_)(_) \/\/  (___/
 
 *  Amazon A2S Java Library
 *  API Version: 2007-10-29
 *  Generated: Thu Jan 10 05:27:32 PST 2008 
 
 */



package com.amazonaws.a2s;

/**
 * Configuration for accessing Amazon A2S  service
 */
public class AmazonA2SConfig {
    
    private String serviceVersion = "2007-10-29";
    private String serviceURL = "http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService";
    private String userAgent = "Amazon A2S Java Library";
    private String proxyHost = null;
    private int proxyPort = -1;
    private String inputEncoding = "ISO8859_1";


  
    /**
     * Gets Version of the API
     *
     @return Version of the Service
     */
    public String getServiceVersion() {
        return serviceVersion;
    }

    /**
     * Gets Input Encoding
     *
     @return Input Encoding
     */
    public String getInputEncoding() {
        return inputEncoding;
    }

    /**
     * Sets Input Encoding property
     *
     @param inputEncoding Input Encoding to use when sending request
     *
     */
    public void setInputEncoding(String inputEncoding) {
        this.inputEncoding = inputEncoding;
    }
    

    /**
     * Sets Input Encoding property and returns current AmazonA2SConfig
     *
     @param inputEncoding Input Encoding to use when sending request
     *
     @return AmazonA2SConfig
     */
    public AmazonA2SConfig withInputEncoding(String inputEncoding) {
        setInputEncoding(inputEncoding);
        return this;
    }

    /**
     * Gets UserAgent property
     *
     @return User Agent String to use when sending request
     */
    public String getUserAgent() {
        return userAgent;
    }
    
    /**
     * Sets UserAgent property
     *
     @param userAgent User Agent String to use when sending request
     *
     */
    public void setUserAgent(String userAgent) {
        this.userAgent = userAgent;
    }
    
    /**
     * Sets UserAgent property and returns current AmazonA2SConfig
     *
     @param userAgent User Agent String to use when sending request
     *
     @return AmazonA2SConfig
     */
    public AmazonA2SConfig withUserAgent(String userAgent) {
        setUserAgent(userAgent);
        return this;
    }
    
    /**
     * Checks if UserAgent property is set
     *
     @return true if UserAgent property is set
     */
    public boolean isSetUserAgent() {
        return this.userAgent != null;
    }
    
    /**
     * Gets ServiceURL property
     *
     @return Service Endpoint URL
     */
    public String getServiceURL() {
        return serviceURL;
    }
    
    /**
     * Sets ServiceURL property
     *
     @param serviceURL Service Endpoint URL
     *
     */
    public void setServiceURL(String serviceURL) {
        this.serviceURL = serviceURL;
    }
    
    /**
     * Sets ServiceURL property and returns current AmazonA2SConfig
     *
     @param serviceURL Service Endpoint URL
     *
     @return AmazonA2SConfig
     */
    public AmazonA2SConfig withServiceURL(String serviceURL) {
        setServiceURL(serviceURL);
        return this;
    }
    
    /**
     * Checks if ServiceURL property is set
     *
     @return true if ServiceURL property is set
     */
    public boolean isSetServiceURL() {
        return this.serviceURL != null;
    }
    
    /**
     * Gets ProxyHost property
     *
     @return Proxy Host for connection
     */
    public String getProxyHost() {
        return proxyHost;
    }
    
    /**
     * Sets ProxyHost property
     *
     @param proxyHost Proxy Host for connection
     *
     */
    public void setProxyHost(String proxyHost) {
        this.proxyHost = proxyHost;
    }
    
    /**
     * Sets ProxyHost property and returns current AmazonA2SConfig
     *
     @param proxyHost Proxy Host for connection
     *
     @return AmazonA2SConfig
     */
    public AmazonA2SConfig withProxyHost(String proxyHost) {
        setProxyHost(proxyHost);
        return this;
    }
    
    /**
     * Checks if ProxyHost property is set
     *
     @return true if ProxyHost property is set
     */
    public boolean isSetProxyHost() {
        return this.proxyHost != null;
    }
    
    /**
     * Gets ProxyPort property
     *
     @return Proxy Port for connection
     */
    public int getProxyPort() {
        return proxyPort;
    }
    
    /**
     * Sets ProxyPort property
     *
     @param proxyPort Proxy Port for connection
     *
     */
    public void setProxyPort(int proxyPort) {
        this.proxyPort = proxyPort;
    }
    
    /**
     * Sets ProxyPort property and returns current AmazonA2SConfig
     *
     @param proxyPort Proxy Port for connection
     *
     @return AmazonA2SConfig
     */
    public AmazonA2SConfig withProxyPort(int proxyPort) {
        setProxyPort(proxyPort);
        return this;
    }
    
    /**
     * Checks if ProxyPort property is set
     *
     @return true if ProxyPort property is set
     */
    public boolean isSetProxyPort() {
        return this.proxyPort != -1;
    }
    
}