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

com.spotinst.sdkjava.model.bl.admin.account.Subscription Maven / Gradle / Ivy

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

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.spotinst.sdkjava.enums.SubscriptionEventTypeEnum;
import com.spotinst.sdkjava.enums.SubscriptionProtocolEnum;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.spotinst.sdkjava.model.bl.admin.account.common.SubscriptionEventFormat;

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

/**
 * Created by aharontwizer on 8/24/15.
 */
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Subscription {
    @JsonIgnore
    private Set                isSet;
    private String                     resourceId;
    private SubscriptionProtocolEnum   protocol;
    private String                     endpoint;
    private SubscriptionEventTypeEnum  eventType;
    private SubscriptionEventFormat    eventFormat;

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

    public Set getIsSet() {
        return isSet;
    }

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

    public String getResourceId() {
        return resourceId;
    }

    public void setResourceId(String resourceId) {
        isSet.add("resourceId");
        this.resourceId = resourceId;
    }

    public SubscriptionProtocolEnum getProtocol() {
        return protocol;
    }

    public void setProtocol(SubscriptionProtocolEnum protocol) {
        isSet.add("protocol");
        this.protocol = protocol;
    }

    public String getEndpoint() {
        return endpoint;
    }

    public void setEndpoint(String endpoint) {
        isSet.add("endpoint");
        this.endpoint = endpoint;
    }

    public SubscriptionEventTypeEnum getEventType() {
        return eventType;
    }

    public void setEventType(SubscriptionEventTypeEnum eventType) {
        isSet.add("eventType");
        this.eventType = eventType;
    }

    public SubscriptionEventFormat getEventFormat() {
        return eventFormat;
    }

    public void setEventFormat(SubscriptionEventFormat eventFormat) {
        isSet.add("eventFormat");
        this.eventFormat = eventFormat;
    }

    public static class Builder {
        private Subscription subscription;

        private Builder() {
            this.subscription = new Subscription();
        }

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

        public Builder setResourceId(final String resourceId) {
            subscription.setResourceId(resourceId);
            return this;
        }

        public Builder setProtocol(final SubscriptionProtocolEnum protocol) {
            subscription.setProtocol(protocol);
            return this;
        }

        public Builder setEndpoint(final String endpoint) {
            subscription.setEndpoint(endpoint);
            return this;
        }

        public Builder setEventType(final SubscriptionEventTypeEnum eventType) {
            subscription.setEventType(eventType);
            return this;
        }

        public Builder setEventFormat(final SubscriptionEventFormat eventFormat) {
            subscription.setEventFormat(eventFormat);
            return this;
        }

        public Subscription build() {
            return subscription;
        }
    }

    @JsonIgnore
    public boolean isResourceIdSet() {
        return isSet.contains("resourceId");
    }

    @JsonIgnore
    public boolean isProtocolSet() {
        return isSet.contains("protocol");
    }

    @JsonIgnore
    public boolean isEndpointSet() {
        return isSet.contains("endpoint");
    }

    @JsonIgnore
    public boolean isEventTypeSet() {
        return isSet.contains("eventType");
    }

    @JsonIgnore
    public boolean isEventFormatSet() {
        return isSet.contains("eventFormat");
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy