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

com.spotinst.sdkjava.model.bl.oceanCD.MetricsProvider Maven / Gradle / Ivy

There is a newer version: 1.0.121
Show newest version
package com.spotinst.sdkjava.model.bl.oceanCD;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.HashSet;
import java.util.Set;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MetricsProvider {
    @JsonIgnore
    private Set                               isSet;
    private ProviderPrometheus                        prometheus;
    private ProviderDatadog                           datadog;
    private ProviderNewRelic                          newRelic;
    private ProviderCloudWatch                        cloudWatch;
    private ProviderWeb                               web;

    private MetricsProvider() {
        isSet = new HashSet<>();
    }

    public Set getIsSet() {
        return isSet;
    }

    public void setIsSet(Set isSet) {
        this.isSet = isSet;
    }

    public ProviderPrometheus getPrometheus() {
        return prometheus;
    }

    public void setPrometheus(ProviderPrometheus prometheus) {
        isSet.add("prometheus");
        this.prometheus = prometheus;
    }

    public ProviderDatadog getDatadog() {
        return datadog;
    }

    public void setDatadog(ProviderDatadog datadog) {
        isSet.add("datadog");
        this.datadog = datadog;
    }

    public ProviderNewRelic getNewRelic() {
        return newRelic;
    }

    public void setNewRelic(ProviderNewRelic newRelic) {
        isSet.add("newRelic");
        this.newRelic = newRelic;
    }

    public ProviderCloudWatch getCloudWatch() {
        return cloudWatch;
    }

    public void setCloudWatch(ProviderCloudWatch cloudWatch) {
        isSet.add("cloudWatch");
        this.cloudWatch = cloudWatch;
    }

    public ProviderWeb getWeb() {
        return web;
    }

    public void setWeb(ProviderWeb web) {
        isSet.add("web");
        this.web = web;
    }

    public static class Builder {
        private MetricsProvider metricsProvider;

        private Builder() {
            this.metricsProvider = new MetricsProvider();
        }

        public static Builder get() {
            return new Builder();
        }

        public Builder setPrometheus(final ProviderPrometheus prometheus) {
            metricsProvider.setPrometheus(prometheus);
            return this;
        }

        public Builder setNewRelic(final ProviderNewRelic newRelic) {
            metricsProvider.setNewRelic(newRelic);
            return this;
        }

        public Builder setDatadog(final ProviderDatadog datadog) {
            metricsProvider.setDatadog(datadog);
            return this;
        }

        public Builder setWeb(final ProviderWeb web) {
            metricsProvider.setWeb(web);
            return this;
        }

        public Builder setCloudWatch(final ProviderCloudWatch cloudWatch) {
            metricsProvider.setCloudWatch(cloudWatch);
            return this;
        }

        public MetricsProvider build() {
            return metricsProvider;
        }
    }

    @JsonIgnore
    public boolean isWebSet() {
        return isSet.contains("web");
    }

    @JsonIgnore
    public boolean isPrometheusSet() {
        return isSet.contains("prometheus");
    }

    @JsonIgnore
    public boolean isDatadogSet() {
        return isSet.contains("datadog");
    }

    @JsonIgnore
    public boolean isNewRelicSet() {
        return isSet.contains("newRelic");
    }

    @JsonIgnore
    public boolean isCloudWatchSet() {
        return isSet.contains("cloudWatch");
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy