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

package com.azure.resourcemanager.billing.models;

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

/** The billing profile details of the partner of the customer for an indirect motion. */
@Fluent
public final class IndirectRelationshipInfo {
    /*
     * The billing account name of the partner or the customer for an indirect motion.
     */
    @JsonProperty(value = "billingAccountName")
    private String billingAccountName;

    /*
     * The billing profile name of the partner or the customer for an indirect motion.
     */
    @JsonProperty(value = "billingProfileName")
    private String billingProfileName;

    /*
     * The display name of the partner or customer for an indirect motion.
     */
    @JsonProperty(value = "displayName")
    private String displayName;

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

    /**
     * Get the billingAccountName property: The billing account name of the partner or the customer for an indirect
     * motion.
     *
     * @return the billingAccountName value.
     */
    public String billingAccountName() {
        return this.billingAccountName;
    }

    /**
     * Set the billingAccountName property: The billing account name of the partner or the customer for an indirect
     * motion.
     *
     * @param billingAccountName the billingAccountName value to set.
     * @return the IndirectRelationshipInfo object itself.
     */
    public IndirectRelationshipInfo withBillingAccountName(String billingAccountName) {
        this.billingAccountName = billingAccountName;
        return this;
    }

    /**
     * Get the billingProfileName property: The billing profile name of the partner or the customer for an indirect
     * motion.
     *
     * @return the billingProfileName value.
     */
    public String billingProfileName() {
        return this.billingProfileName;
    }

    /**
     * Set the billingProfileName property: The billing profile name of the partner or the customer for an indirect
     * motion.
     *
     * @param billingProfileName the billingProfileName value to set.
     * @return the IndirectRelationshipInfo object itself.
     */
    public IndirectRelationshipInfo withBillingProfileName(String billingProfileName) {
        this.billingProfileName = billingProfileName;
        return this;
    }

    /**
     * Get the displayName property: The display name of the partner or customer for an indirect motion.
     *
     * @return the displayName value.
     */
    public String displayName() {
        return this.displayName;
    }

    /**
     * Set the displayName property: The display name of the partner or customer for an indirect motion.
     *
     * @param displayName the displayName value to set.
     * @return the IndirectRelationshipInfo object itself.
     */
    public IndirectRelationshipInfo withDisplayName(String displayName) {
        this.displayName = displayName;
        return this;
    }

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