// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.billingbenefits.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** Benefit scope response property. */
@Fluent
public final class SavingsPlanValidResponseProperty {
    /*
     * Indicates if the provided input was valid
     */
    @JsonProperty(value = "valid")
    private Boolean valid;

    /*
     * Failure reason code if the provided input was invalid
     */
    @JsonProperty(value = "reasonCode")
    private String reasonCode;

    /*
     * Failure reason if the provided input was invalid
     */
    @JsonProperty(value = "reason")
    private String reason;

    /** Creates an instance of SavingsPlanValidResponseProperty class. */
    public SavingsPlanValidResponseProperty() {
    }

    /**
     * Get the valid property: Indicates if the provided input was valid.
     *
     * @return the valid value.
     */
    public Boolean valid() {
        return this.valid;
    }

    /**
     * Set the valid property: Indicates if the provided input was valid.
     *
     * @param valid the valid value to set.
     * @return the SavingsPlanValidResponseProperty object itself.
     */
    public SavingsPlanValidResponseProperty withValid(Boolean valid) {
        this.valid = valid;
        return this;
    }

    /**
     * Get the reasonCode property: Failure reason code if the provided input was invalid.
     *
     * @return the reasonCode value.
     */
    public String reasonCode() {
        return this.reasonCode;
    }

    /**
     * Set the reasonCode property: Failure reason code if the provided input was invalid.
     *
     * @param reasonCode the reasonCode value to set.
     * @return the SavingsPlanValidResponseProperty object itself.
     */
    public SavingsPlanValidResponseProperty withReasonCode(String reasonCode) {
        this.reasonCode = reasonCode;
        return this;
    }

    /**
     * Get the reason property: Failure reason if the provided input was invalid.
     *
     * @return the reason value.
     */
    public String reason() {
        return this.reason;
    }

    /**
     * Set the reason property: Failure reason if the provided input was invalid.
     *
     * @param reason the reason value to set.
     * @return the SavingsPlanValidResponseProperty object itself.
     */
    public SavingsPlanValidResponseProperty withReason(String reason) {
        this.reason = reason;
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
    }
}
