All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.cloudslang.content.amazon.entities.inputs.InputsWrapper Maven / Gradle / Ivy

/*******************************************************************************
 * (c) Copyright 2017 Hewlett-Packard Development Company, L.P.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Apache License v2.0 which accompany this distribution.
 *
 * The Apache License is available at
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 *******************************************************************************/
package io.cloudslang.content.amazon.entities.inputs;

import io.cloudslang.content.httpclient.HttpClientInputs;
import io.cloudslang.content.amazon.entities.aws.AmazonApi;
import org.jetbrains.annotations.NotNull;

import static io.cloudslang.content.amazon.utils.InputsUtil.getDefaultStringInput;

import static io.cloudslang.content.amazon.entities.constants.Constants.Miscellaneous.SCOPE_SEPARATOR;

/**
 * Created by Mihai Tusa.
 * 8/10/2016.
 */
public class InputsWrapper {
    private final HttpClientInputs httpClientInputs;
    private final CommonInputs commonInputs;
    private CustomInputs customInputs;
    private EbsInputs ebsInputs;
    private ElasticIpInputs elasticIpInputs;
    private IamInputs iamInputs;
    private ImageInputs imageInputs;
    private InstanceInputs instanceInputs;
    private LoadBalancerInputs loadBalancerInputs;
    private NetworkInputs networkInputs;
    private StorageInputs storageInputs;
    private VolumeInputs volumeInputs;
    private FilterInputs filterInputs;

    private final String apiService;
    private final String requestUri;
    private final String requestPayload;
    private final String date;
    private final String securityToken;
    private final String httpVerb;
    private final String headers;
    private final String queryParams;

    private InputsWrapper(Builder builder) {
        this.httpClientInputs = builder.httpClientInputs;
        this.commonInputs = builder.commonInputs;

        this.apiService = builder.apiService;
        this.requestUri = builder.requestUri;
        this.requestPayload = builder.requestPayload;
        this.date = builder.date;
        this.securityToken = builder.securityToken;
        this.httpVerb = builder.httpVerb;
        this.headers = builder.headers;
        this.queryParams = builder.queryParams;
    }

    public HttpClientInputs getHttpClientInputs() {
        return httpClientInputs;
    }

    public CommonInputs getCommonInputs() {
        return commonInputs;
    }

    public CustomInputs getCustomInputs() {
        return customInputs;
    }

    public void setCustomInputs(CustomInputs customInputs) {
        this.customInputs = customInputs;
    }

    public EbsInputs getEbsInputs() {
        return ebsInputs;
    }

    public void setEbsInputs(EbsInputs ebsInputs) {
        this.ebsInputs = ebsInputs;
    }

    public ElasticIpInputs getElasticIpInputs() {
        return elasticIpInputs;
    }

    public void setElasticIpInputs(ElasticIpInputs elasticIpInputs) {
        this.elasticIpInputs = elasticIpInputs;
    }

    public IamInputs getIamInputs() {
        return iamInputs;
    }

    public void setIamInputs(IamInputs iamInputs) {
        this.iamInputs = iamInputs;
    }

    public ImageInputs getImageInputs() {
        return imageInputs;
    }

    public void setImageInputs(ImageInputs imageInputs) {
        this.imageInputs = imageInputs;
    }

    public InstanceInputs getInstanceInputs() {
        return instanceInputs;
    }

    public void setInstanceInputs(InstanceInputs instanceInputs) {
        this.instanceInputs = instanceInputs;
    }

    public LoadBalancerInputs getLoadBalancerInputs() {
        return loadBalancerInputs;
    }

    public void setLoadBalancerInputs(LoadBalancerInputs loadBalancerInputs) {
        this.loadBalancerInputs = loadBalancerInputs;
    }

    public NetworkInputs getNetworkInputs() {
        return networkInputs;
    }

    public StorageInputs getStorageInputs() {
        return storageInputs;
    }

    public void setStorageInputs(StorageInputs storageInputs) {
        this.storageInputs = storageInputs;
    }

    public void setNetworkInputs(NetworkInputs networkInputs) {
        this.networkInputs = networkInputs;
    }

    public VolumeInputs getVolumeInputs() {
        return volumeInputs;
    }

    public void setVolumeInputs(VolumeInputs volumeInputs) {
        this.volumeInputs = volumeInputs;
    }

    public String getApiService() {
        return apiService;
    }

    public String getRequestUri() {
        return requestUri;
    }

    public String getRequestPayload() {
        return requestPayload;
    }

    public String getDate() {
        return date;
    }

    public String getSecurityToken() {
        return securityToken;
    }

    public String getHttpVerb() {
        return httpVerb;
    }

    public String getHeaders() {
        return headers;
    }

    public String getQueryParams() {
        return queryParams;
    }

    public FilterInputs getFilterInputs() {
        return filterInputs;
    }

    public void setFilterInputs(@NotNull final FilterInputs filterInputs) {
        this.filterInputs = filterInputs;
    }

    public static class Builder {
        private HttpClientInputs httpClientInputs;
        private CommonInputs commonInputs;

        private String apiService;
        private String requestUri;
        private String requestPayload;
        private String date;
        private String securityToken;
        private String httpVerb;
        private String headers;
        private String queryParams;

        public InputsWrapper build() {
            return new InputsWrapper(this);
        }

        public Builder withHttpClientInputs(HttpClientInputs inputs) {
            httpClientInputs = inputs;
            return this;
        }

        public Builder withCommonInputs(CommonInputs inputs) {
            commonInputs = inputs;
            return this;
        }

        public Builder withApiService(String inputValue) {
            apiService = AmazonApi.getApiValue(inputValue);
            return this;
        }

        public Builder withRequestUri(String inputValue) {
            requestUri = getDefaultStringInput(inputValue, SCOPE_SEPARATOR);
            return this;
        }

        public Builder withRequestPayload(String inputValue) {
            requestPayload = inputValue;
            return this;
        }

        public Builder withDate(String inputValue) {
            date = inputValue;
            return this;
        }

        public Builder withSecurityToken(String inputValue) {
            securityToken = inputValue;
            return this;
        }

        public Builder withHttpVerb(String inputValue) {
            httpVerb = inputValue;
            return this;
        }

        public Builder withHeaders(String inputValue) {
            headers = inputValue;
            return this;
        }

        public Builder withQueryParams(String inputValue) {
            queryParams = inputValue;
            return this;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy