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

com.shell.apitest.models.RestrictionCardsList Maven / Gradle / Ivy

/*
 * ShellCardManagementAPIsLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

package com.shell.apitest.models;

import com.fasterxml.jackson.annotation.JsonGetter;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.apimatic.core.types.OptionalNullable;

/**
 * This is a model class for RestrictionCardsList type.
 */
public class RestrictionCardsList {
    private OptionalNullable accountId;
    private OptionalNullable cardId;
    private OptionalNullable pAN;
    private Boolean resetUsageRestrictions;
    private OptionalNullable resetDayTimeRestrictions;
    private OptionalNullable resetProductRestrictions;
    private OptionalNullable resetLocationRestrictions;
    private Object usageRestrictions;
    private DayTimeRestrictions dayTimeRestrictions;
    private Object productRestrictions;
    private LocationRestriction locationRestrictions;

    /**
     * Default constructor.
     */
    public RestrictionCardsList() {
    }

    /**
     * Initialization constructor.
     * @param  accountId  Integer value for accountId.
     * @param  cardId  Integer value for cardId.
     * @param  pAN  String value for pAN.
     * @param  resetUsageRestrictions  Boolean value for resetUsageRestrictions.
     * @param  resetDayTimeRestrictions  Boolean value for resetDayTimeRestrictions.
     * @param  resetProductRestrictions  Boolean value for resetProductRestrictions.
     * @param  resetLocationRestrictions  Boolean value for resetLocationRestrictions.
     * @param  usageRestrictions  Object value for usageRestrictions.
     * @param  dayTimeRestrictions  DayTimeRestrictions value for dayTimeRestrictions.
     * @param  productRestrictions  Object value for productRestrictions.
     * @param  locationRestrictions  LocationRestriction value for locationRestrictions.
     */
    public RestrictionCardsList(
            Integer accountId,
            Integer cardId,
            String pAN,
            Boolean resetUsageRestrictions,
            Boolean resetDayTimeRestrictions,
            Boolean resetProductRestrictions,
            Boolean resetLocationRestrictions,
            Object usageRestrictions,
            DayTimeRestrictions dayTimeRestrictions,
            Object productRestrictions,
            LocationRestriction locationRestrictions) {
        this.accountId = OptionalNullable.of(accountId);
        this.cardId = OptionalNullable.of(cardId);
        this.pAN = OptionalNullable.of(pAN);
        this.resetUsageRestrictions = resetUsageRestrictions;
        this.resetDayTimeRestrictions = OptionalNullable.of(resetDayTimeRestrictions);
        this.resetProductRestrictions = OptionalNullable.of(resetProductRestrictions);
        this.resetLocationRestrictions = OptionalNullable.of(resetLocationRestrictions);
        this.usageRestrictions = usageRestrictions;
        this.dayTimeRestrictions = dayTimeRestrictions;
        this.productRestrictions = productRestrictions;
        this.locationRestrictions = locationRestrictions;
    }

    /**
     * Initialization constructor.
     * @param  accountId  Integer value for accountId.
     * @param  cardId  Integer value for cardId.
     * @param  pAN  String value for pAN.
     * @param  resetUsageRestrictions  Boolean value for resetUsageRestrictions.
     * @param  resetDayTimeRestrictions  Boolean value for resetDayTimeRestrictions.
     * @param  resetProductRestrictions  Boolean value for resetProductRestrictions.
     * @param  resetLocationRestrictions  Boolean value for resetLocationRestrictions.
     * @param  usageRestrictions  Object value for usageRestrictions.
     * @param  dayTimeRestrictions  DayTimeRestrictions value for dayTimeRestrictions.
     * @param  productRestrictions  Object value for productRestrictions.
     * @param  locationRestrictions  LocationRestriction value for locationRestrictions.
     */

    protected RestrictionCardsList(OptionalNullable accountId,
            OptionalNullable cardId, OptionalNullable pAN,
            Boolean resetUsageRestrictions, OptionalNullable resetDayTimeRestrictions,
            OptionalNullable resetProductRestrictions,
            OptionalNullable resetLocationRestrictions, Object usageRestrictions,
            DayTimeRestrictions dayTimeRestrictions, Object productRestrictions,
            LocationRestriction locationRestrictions) {
        this.accountId = accountId;
        this.cardId = cardId;
        this.pAN = pAN;
        this.resetUsageRestrictions = resetUsageRestrictions;
        this.resetDayTimeRestrictions = resetDayTimeRestrictions;
        this.resetProductRestrictions = resetProductRestrictions;
        this.resetLocationRestrictions = resetLocationRestrictions;
        this.usageRestrictions = usageRestrictions;
        this.dayTimeRestrictions = dayTimeRestrictions;
        this.productRestrictions = productRestrictions;
        this.locationRestrictions = locationRestrictions;
    }

    /**
     * Internal Getter for AccountId.
     * Account ID of the customer. Optional if AccountNumber is passed, else Mandatory. This input
     * is a search criterion, if given. Example: 123456
     * @return Returns the Internal Integer
     */
    @JsonGetter("AccountId")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonSerialize(using = OptionalNullable.Serializer.class)
    protected OptionalNullable internalGetAccountId() {
        return this.accountId;
    }

    /**
     * Getter for AccountId.
     * Account ID of the customer. Optional if AccountNumber is passed, else Mandatory. This input
     * is a search criterion, if given. Example: 123456
     * @return Returns the Integer
     */
    public Integer getAccountId() {
        return OptionalNullable.getFrom(accountId);
    }

    /**
     * Setter for AccountId.
     * Account ID of the customer. Optional if AccountNumber is passed, else Mandatory. This input
     * is a search criterion, if given. Example: 123456
     * @param accountId Value for Integer
     */
    @JsonSetter("AccountId")
    public void setAccountId(Integer accountId) {
        this.accountId = OptionalNullable.of(accountId);
    }

    /**
     * UnSetter for AccountId.
     * Account ID of the customer. Optional if AccountNumber is passed, else Mandatory. This input
     * is a search criterion, if given. Example: 123456
     */
    public void unsetAccountId() {
        accountId = null;
    }

    /**
     * Internal Getter for CardId.
     * Unique Card Id
     * @return Returns the Internal Integer
     */
    @JsonGetter("CardId")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonSerialize(using = OptionalNullable.Serializer.class)
    protected OptionalNullable internalGetCardId() {
        return this.cardId;
    }

    /**
     * Getter for CardId.
     * Unique Card Id
     * @return Returns the Integer
     */
    public Integer getCardId() {
        return OptionalNullable.getFrom(cardId);
    }

    /**
     * Setter for CardId.
     * Unique Card Id
     * @param cardId Value for Integer
     */
    @JsonSetter("CardId")
    public void setCardId(Integer cardId) {
        this.cardId = OptionalNullable.of(cardId);
    }

    /**
     * UnSetter for CardId.
     * Unique Card Id
     */
    public void unsetCardId() {
        cardId = null;
    }

    /**
     * Internal Getter for PAN.
     * Card PAN. Optional if CardId is given, else mandatory. Example: 7002051006629890645 Note: •
     * PAN is ignored if CardId is given. When PAN matches with multiple cards, the restriction will
     * be applied on the latest issued card.
     * @return Returns the Internal String
     */
    @JsonGetter("PAN")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonSerialize(using = OptionalNullable.Serializer.class)
    protected OptionalNullable internalGetPAN() {
        return this.pAN;
    }

    /**
     * Getter for PAN.
     * Card PAN. Optional if CardId is given, else mandatory. Example: 7002051006629890645 Note: •
     * PAN is ignored if CardId is given. When PAN matches with multiple cards, the restriction will
     * be applied on the latest issued card.
     * @return Returns the String
     */
    public String getPAN() {
        return OptionalNullable.getFrom(pAN);
    }

    /**
     * Setter for PAN.
     * Card PAN. Optional if CardId is given, else mandatory. Example: 7002051006629890645 Note: •
     * PAN is ignored if CardId is given. When PAN matches with multiple cards, the restriction will
     * be applied on the latest issued card.
     * @param pAN Value for String
     */
    @JsonSetter("PAN")
    public void setPAN(String pAN) {
        this.pAN = OptionalNullable.of(pAN);
    }

    /**
     * UnSetter for PAN.
     * Card PAN. Optional if CardId is given, else mandatory. Example: 7002051006629890645 Note: •
     * PAN is ignored if CardId is given. When PAN matches with multiple cards, the restriction will
     * be applied on the latest issued card.
     */
    public void unsetPAN() {
        pAN = null;
    }

    /**
     * Getter for ResetUsageRestrictions.
     * True/False. If true, the usage restrictions applied on the card in Gateway will be reset to
     * Customer Card Type level max limits, if there are no customer level overrides available then
     * OU card type max limits. Else, the card restrictions will be updated with the usage
     * restrictions provided in the API. This property is not dependent on IsVelocityCeiling or
     * SetDefaultOnVelocityUpdate flags.
     * @return Returns the Boolean
     */
    @JsonGetter("ResetUsageRestrictions")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public Boolean getResetUsageRestrictions() {
        return resetUsageRestrictions;
    }

    /**
     * Setter for ResetUsageRestrictions.
     * True/False. If true, the usage restrictions applied on the card in Gateway will be reset to
     * Customer Card Type level max limits, if there are no customer level overrides available then
     * OU card type max limits. Else, the card restrictions will be updated with the usage
     * restrictions provided in the API. This property is not dependent on IsVelocityCeiling or
     * SetDefaultOnVelocityUpdate flags.
     * @param resetUsageRestrictions Value for Boolean
     */
    @JsonSetter("ResetUsageRestrictions")
    public void setResetUsageRestrictions(Boolean resetUsageRestrictions) {
        this.resetUsageRestrictions = resetUsageRestrictions;
    }

    /**
     * Internal Getter for ResetDayTimeRestrictions.
     * True/False. If true, the Day/Time restrictions applied on the card will be deleted. Else, the
     * card restrictions will be updated with the day/time restrictions provided in the API.
     * @return Returns the Internal Boolean
     */
    @JsonGetter("ResetDayTimeRestrictions")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonSerialize(using = OptionalNullable.Serializer.class)
    protected OptionalNullable internalGetResetDayTimeRestrictions() {
        return this.resetDayTimeRestrictions;
    }

    /**
     * Getter for ResetDayTimeRestrictions.
     * True/False. If true, the Day/Time restrictions applied on the card will be deleted. Else, the
     * card restrictions will be updated with the day/time restrictions provided in the API.
     * @return Returns the Boolean
     */
    public Boolean getResetDayTimeRestrictions() {
        return OptionalNullable.getFrom(resetDayTimeRestrictions);
    }

    /**
     * Setter for ResetDayTimeRestrictions.
     * True/False. If true, the Day/Time restrictions applied on the card will be deleted. Else, the
     * card restrictions will be updated with the day/time restrictions provided in the API.
     * @param resetDayTimeRestrictions Value for Boolean
     */
    @JsonSetter("ResetDayTimeRestrictions")
    public void setResetDayTimeRestrictions(Boolean resetDayTimeRestrictions) {
        this.resetDayTimeRestrictions = OptionalNullable.of(resetDayTimeRestrictions);
    }

    /**
     * UnSetter for ResetDayTimeRestrictions.
     * True/False. If true, the Day/Time restrictions applied on the card will be deleted. Else, the
     * card restrictions will be updated with the day/time restrictions provided in the API.
     */
    public void unsetResetDayTimeRestrictions() {
        resetDayTimeRestrictions = null;
    }

    /**
     * Internal Getter for ResetProductRestrictions.
     * True/False. If true, Default fuel/non-fuel sets configured at the purchase category level
     * will be applied to the card. Else, the card will be applied with product restrictions
     * provided in the API.
     * @return Returns the Internal Boolean
     */
    @JsonGetter("ResetProductRestrictions")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonSerialize(using = OptionalNullable.Serializer.class)
    protected OptionalNullable internalGetResetProductRestrictions() {
        return this.resetProductRestrictions;
    }

    /**
     * Getter for ResetProductRestrictions.
     * True/False. If true, Default fuel/non-fuel sets configured at the purchase category level
     * will be applied to the card. Else, the card will be applied with product restrictions
     * provided in the API.
     * @return Returns the Boolean
     */
    public Boolean getResetProductRestrictions() {
        return OptionalNullable.getFrom(resetProductRestrictions);
    }

    /**
     * Setter for ResetProductRestrictions.
     * True/False. If true, Default fuel/non-fuel sets configured at the purchase category level
     * will be applied to the card. Else, the card will be applied with product restrictions
     * provided in the API.
     * @param resetProductRestrictions Value for Boolean
     */
    @JsonSetter("ResetProductRestrictions")
    public void setResetProductRestrictions(Boolean resetProductRestrictions) {
        this.resetProductRestrictions = OptionalNullable.of(resetProductRestrictions);
    }

    /**
     * UnSetter for ResetProductRestrictions.
     * True/False. If true, Default fuel/non-fuel sets configured at the purchase category level
     * will be applied to the card. Else, the card will be applied with product restrictions
     * provided in the API.
     */
    public void unsetResetProductRestrictions() {
        resetProductRestrictions = null;
    }

    /**
     * Internal Getter for ResetLocationRestrictions.
     * True/False. If true, the location restrictions applied on the card will be deleted. Else, the
     * card restrictions will be updated with the location restrictions provided in the API.
     * @return Returns the Internal Boolean
     */
    @JsonGetter("ResetLocationRestrictions")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonSerialize(using = OptionalNullable.Serializer.class)
    protected OptionalNullable internalGetResetLocationRestrictions() {
        return this.resetLocationRestrictions;
    }

    /**
     * Getter for ResetLocationRestrictions.
     * True/False. If true, the location restrictions applied on the card will be deleted. Else, the
     * card restrictions will be updated with the location restrictions provided in the API.
     * @return Returns the Boolean
     */
    public Boolean getResetLocationRestrictions() {
        return OptionalNullable.getFrom(resetLocationRestrictions);
    }

    /**
     * Setter for ResetLocationRestrictions.
     * True/False. If true, the location restrictions applied on the card will be deleted. Else, the
     * card restrictions will be updated with the location restrictions provided in the API.
     * @param resetLocationRestrictions Value for Boolean
     */
    @JsonSetter("ResetLocationRestrictions")
    public void setResetLocationRestrictions(Boolean resetLocationRestrictions) {
        this.resetLocationRestrictions = OptionalNullable.of(resetLocationRestrictions);
    }

    /**
     * UnSetter for ResetLocationRestrictions.
     * True/False. If true, the location restrictions applied on the card will be deleted. Else, the
     * card restrictions will be updated with the location restrictions provided in the API.
     */
    public void unsetResetLocationRestrictions() {
        resetLocationRestrictions = null;
    }

    /**
     * Getter for UsageRestrictions.
     * @return Returns the Object
     */
    @JsonGetter("UsageRestrictions")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public Object getUsageRestrictions() {
        return usageRestrictions;
    }

    /**
     * Setter for UsageRestrictions.
     * @param usageRestrictions Value for Object
     */
    @JsonSetter("UsageRestrictions")
    public void setUsageRestrictions(Object usageRestrictions) {
        this.usageRestrictions = usageRestrictions;
    }

    /**
     * Getter for DayTimeRestrictions.
     * @return Returns the DayTimeRestrictions
     */
    @JsonGetter("DayTimeRestrictions")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public DayTimeRestrictions getDayTimeRestrictions() {
        return dayTimeRestrictions;
    }

    /**
     * Setter for DayTimeRestrictions.
     * @param dayTimeRestrictions Value for DayTimeRestrictions
     */
    @JsonSetter("DayTimeRestrictions")
    public void setDayTimeRestrictions(DayTimeRestrictions dayTimeRestrictions) {
        this.dayTimeRestrictions = dayTimeRestrictions;
    }

    /**
     * Getter for ProductRestrictions.
     * @return Returns the Object
     */
    @JsonGetter("ProductRestrictions")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public Object getProductRestrictions() {
        return productRestrictions;
    }

    /**
     * Setter for ProductRestrictions.
     * @param productRestrictions Value for Object
     */
    @JsonSetter("ProductRestrictions")
    public void setProductRestrictions(Object productRestrictions) {
        this.productRestrictions = productRestrictions;
    }

    /**
     * Getter for LocationRestrictions.
     * @return Returns the LocationRestriction
     */
    @JsonGetter("LocationRestrictions")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public LocationRestriction getLocationRestrictions() {
        return locationRestrictions;
    }

    /**
     * Setter for LocationRestrictions.
     * @param locationRestrictions Value for LocationRestriction
     */
    @JsonSetter("LocationRestrictions")
    public void setLocationRestrictions(LocationRestriction locationRestrictions) {
        this.locationRestrictions = locationRestrictions;
    }

    /**
     * Converts this RestrictionCardsList into string format.
     * @return String representation of this class
     */
    @Override
    public String toString() {
        return "RestrictionCardsList [" + "accountId=" + accountId + ", cardId=" + cardId + ", pAN="
                + pAN + ", resetUsageRestrictions=" + resetUsageRestrictions
                + ", resetDayTimeRestrictions=" + resetDayTimeRestrictions
                + ", resetProductRestrictions=" + resetProductRestrictions
                + ", resetLocationRestrictions=" + resetLocationRestrictions
                + ", usageRestrictions=" + usageRestrictions + ", dayTimeRestrictions="
                + dayTimeRestrictions + ", productRestrictions=" + productRestrictions
                + ", locationRestrictions=" + locationRestrictions + "]";
    }

    /**
     * Builds a new {@link RestrictionCardsList.Builder} object.
     * Creates the instance with the state of the current model.
     * @return a new {@link RestrictionCardsList.Builder} object
     */
    public Builder toBuilder() {
        Builder builder = new Builder()
                .resetUsageRestrictions(getResetUsageRestrictions())
                .usageRestrictions(getUsageRestrictions())
                .dayTimeRestrictions(getDayTimeRestrictions())
                .productRestrictions(getProductRestrictions())
                .locationRestrictions(getLocationRestrictions());
        builder.accountId = internalGetAccountId();
        builder.cardId = internalGetCardId();
        builder.pAN = internalGetPAN();
        builder.resetDayTimeRestrictions = internalGetResetDayTimeRestrictions();
        builder.resetProductRestrictions = internalGetResetProductRestrictions();
        builder.resetLocationRestrictions = internalGetResetLocationRestrictions();
        return builder;
    }

    /**
     * Class to build instances of {@link RestrictionCardsList}.
     */
    public static class Builder {
        private OptionalNullable accountId;
        private OptionalNullable cardId;
        private OptionalNullable pAN;
        private Boolean resetUsageRestrictions;
        private OptionalNullable resetDayTimeRestrictions;
        private OptionalNullable resetProductRestrictions;
        private OptionalNullable resetLocationRestrictions;
        private Object usageRestrictions;
        private DayTimeRestrictions dayTimeRestrictions;
        private Object productRestrictions;
        private LocationRestriction locationRestrictions;



        /**
         * Setter for accountId.
         * @param  accountId  Integer value for accountId.
         * @return Builder
         */
        public Builder accountId(Integer accountId) {
            this.accountId = OptionalNullable.of(accountId);
            return this;
        }

        /**
         * UnSetter for accountId.
         * @return Builder
         */
        public Builder unsetAccountId() {
            accountId = null;
            return this;
        }

        /**
         * Setter for cardId.
         * @param  cardId  Integer value for cardId.
         * @return Builder
         */
        public Builder cardId(Integer cardId) {
            this.cardId = OptionalNullable.of(cardId);
            return this;
        }

        /**
         * UnSetter for cardId.
         * @return Builder
         */
        public Builder unsetCardId() {
            cardId = null;
            return this;
        }

        /**
         * Setter for pAN.
         * @param  pAN  String value for pAN.
         * @return Builder
         */
        public Builder pAN(String pAN) {
            this.pAN = OptionalNullable.of(pAN);
            return this;
        }

        /**
         * UnSetter for pAN.
         * @return Builder
         */
        public Builder unsetPAN() {
            pAN = null;
            return this;
        }

        /**
         * Setter for resetUsageRestrictions.
         * @param  resetUsageRestrictions  Boolean value for resetUsageRestrictions.
         * @return Builder
         */
        public Builder resetUsageRestrictions(Boolean resetUsageRestrictions) {
            this.resetUsageRestrictions = resetUsageRestrictions;
            return this;
        }

        /**
         * Setter for resetDayTimeRestrictions.
         * @param  resetDayTimeRestrictions  Boolean value for resetDayTimeRestrictions.
         * @return Builder
         */
        public Builder resetDayTimeRestrictions(Boolean resetDayTimeRestrictions) {
            this.resetDayTimeRestrictions = OptionalNullable.of(resetDayTimeRestrictions);
            return this;
        }

        /**
         * UnSetter for resetDayTimeRestrictions.
         * @return Builder
         */
        public Builder unsetResetDayTimeRestrictions() {
            resetDayTimeRestrictions = null;
            return this;
        }

        /**
         * Setter for resetProductRestrictions.
         * @param  resetProductRestrictions  Boolean value for resetProductRestrictions.
         * @return Builder
         */
        public Builder resetProductRestrictions(Boolean resetProductRestrictions) {
            this.resetProductRestrictions = OptionalNullable.of(resetProductRestrictions);
            return this;
        }

        /**
         * UnSetter for resetProductRestrictions.
         * @return Builder
         */
        public Builder unsetResetProductRestrictions() {
            resetProductRestrictions = null;
            return this;
        }

        /**
         * Setter for resetLocationRestrictions.
         * @param  resetLocationRestrictions  Boolean value for resetLocationRestrictions.
         * @return Builder
         */
        public Builder resetLocationRestrictions(Boolean resetLocationRestrictions) {
            this.resetLocationRestrictions = OptionalNullable.of(resetLocationRestrictions);
            return this;
        }

        /**
         * UnSetter for resetLocationRestrictions.
         * @return Builder
         */
        public Builder unsetResetLocationRestrictions() {
            resetLocationRestrictions = null;
            return this;
        }

        /**
         * Setter for usageRestrictions.
         * @param  usageRestrictions  Object value for usageRestrictions.
         * @return Builder
         */
        public Builder usageRestrictions(Object usageRestrictions) {
            this.usageRestrictions = usageRestrictions;
            return this;
        }

        /**
         * Setter for dayTimeRestrictions.
         * @param  dayTimeRestrictions  DayTimeRestrictions value for dayTimeRestrictions.
         * @return Builder
         */
        public Builder dayTimeRestrictions(DayTimeRestrictions dayTimeRestrictions) {
            this.dayTimeRestrictions = dayTimeRestrictions;
            return this;
        }

        /**
         * Setter for productRestrictions.
         * @param  productRestrictions  Object value for productRestrictions.
         * @return Builder
         */
        public Builder productRestrictions(Object productRestrictions) {
            this.productRestrictions = productRestrictions;
            return this;
        }

        /**
         * Setter for locationRestrictions.
         * @param  locationRestrictions  LocationRestriction value for locationRestrictions.
         * @return Builder
         */
        public Builder locationRestrictions(LocationRestriction locationRestrictions) {
            this.locationRestrictions = locationRestrictions;
            return this;
        }

        /**
         * Builds a new {@link RestrictionCardsList} object using the set fields.
         * @return {@link RestrictionCardsList}
         */
        public RestrictionCardsList build() {
            return new RestrictionCardsList(accountId, cardId, pAN, resetUsageRestrictions,
                    resetDayTimeRestrictions, resetProductRestrictions, resetLocationRestrictions,
                    usageRestrictions, dayTimeRestrictions, productRestrictions,
                    locationRestrictions);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy