
package com.microstar.tap3.lambda;

import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "body",
    "resource",
    "requestContext",
    "queryStringParameters",
    "headers",
    "pathParameters",
    "httpMethod",
    "stageVariables",
    "path",
    "base64Encoded"
})
public class LambdaCall {

    @JsonProperty("body")
    private Object body;
    @JsonProperty("resource")
    private String resource;
    @JsonProperty("requestContext")
    private RequestContext requestContext;
    @JsonProperty("queryStringParameters")
    private HashMap<String, String> queryStringParameters;
    @JsonProperty("headers")
    private HashMap<String, String> headers;
    @JsonProperty("pathParameters")
    private HashMap<String, String> pathParameters;
    @JsonProperty("httpMethod")
    private String httpMethod;
    @JsonProperty("stageVariables")
    private HashMap<String, String> stageVariables;
    @JsonProperty("path")
    private String path;
    @JsonProperty("base64Encoded")
    private Boolean base64Encoded;
    @JsonIgnore
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();

    @JsonProperty("body")
    public Object getBody() {
        return body;
    }

    @JsonProperty("body")
    public void setBody(Object body) {
        this.body = body;
    }

    @JsonProperty("resource")
    public String getResource() {
        return resource;
    }

    @JsonProperty("resource")
    public void setResource(String resource) {
        this.resource = resource;
    }

    @JsonProperty("requestContext")
    public RequestContext getRequestContext() {
        return requestContext;
    }

    @JsonProperty("requestContext")
    public void setRequestContext(RequestContext requestContext) {
        this.requestContext = requestContext;
    }

    @JsonProperty("queryStringParameters")
    public HashMap<String, String> getQueryStringParameters() {
    	if ( queryStringParameters == null )
    		queryStringParameters = new HashMap<String, String>();
        return queryStringParameters;
    }

    @JsonProperty("queryStringParameters")
    public void setQueryStringParameters(HashMap<String, String> queryStringParameters) {
        this.queryStringParameters = queryStringParameters;
    }

    @JsonProperty("headers")
    public HashMap<String, String> getHeaders() {
    	if ( headers == null )
    		headers = new HashMap<String, String>();
        return headers;
    }

    @JsonProperty("headers")
    public void setHeaders(HashMap<String, String> headers) {
        this.headers = headers;
    }

    @JsonProperty("pathParameters")
    public HashMap<String, String> getPathParameters() {
    	if ( pathParameters == null )
    		pathParameters = new HashMap<String, String>();
        return pathParameters;
    }

    @JsonProperty("pathParameters")
    public void setPathParameters(HashMap<String, String> pathParameters) {
        this.pathParameters = pathParameters;
    }

    @JsonProperty("httpMethod")
    public String getHttpMethod() {
        return httpMethod;
    }

    @JsonProperty("httpMethod")
    public void setHttpMethod(String httpMethod) {
        this.httpMethod = httpMethod;
    }

    @JsonProperty("stageVariables")
    public HashMap<String, String> getStageVariables() {
    	if ( stageVariables == null )
    		stageVariables = new HashMap<String, String>();
        return stageVariables;
    }

    @JsonProperty("stageVariables")
    public void setStageVariables(HashMap<String, String> stageVariables) {
        this.stageVariables = stageVariables;
    }

    @JsonProperty("path")
    public String getPath() {
        return path;
    }

    @JsonProperty("path")
    public void setPath(String path) {
        this.path = path;
    }

    @JsonProperty("base64Encoded")
    public Boolean getBase64Encoded() {
        return base64Encoded;
    }

    @JsonProperty("base64Encoded")
    public void setBase64Encoded(Boolean base64Encoded) {
        this.base64Encoded = base64Encoded;
    }

    @JsonAnyGetter
    public Map<String, Object> getAdditionalProperties() {
        return this.additionalProperties;
    }

    @JsonAnySetter
    public void setAdditionalProperty(String name, Object value) {
        this.additionalProperties.put(name, value);
    }

}
