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

package com.azure.resourcemanager.azureadexternalidentities.models;

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

/** The billing configuration for the tenant. */
@Fluent
public final class B2CTenantResourcePropertiesBillingConfig {
    /*
     * The type of billing. Will be MAU for all new customers. If 'Auths', it
     * can be updated to 'MAU'. Cannot be changed if value is 'MAU'. Learn more
     * about Azure AD B2C billing at
     * [aka.ms/b2cBilling](https://aka.ms/b2cbilling).
     */
    @JsonProperty(value = "billingType")
    private BillingType billingType;

    /*
     * The data from which the billing type took effect
     */
    @JsonProperty(value = "effectiveStartDateUtc", access = JsonProperty.Access.WRITE_ONLY)
    private String effectiveStartDateUtc;

    /**
     * Get the billingType property: The type of billing. Will be MAU for all new customers. If 'Auths', it can be
     * updated to 'MAU'. Cannot be changed if value is 'MAU'. Learn more about Azure AD B2C billing at
     * [aka.ms/b2cBilling](https://aka.ms/b2cbilling).
     *
     * @return the billingType value.
     */
    public BillingType billingType() {
        return this.billingType;
    }

    /**
     * Set the billingType property: The type of billing. Will be MAU for all new customers. If 'Auths', it can be
     * updated to 'MAU'. Cannot be changed if value is 'MAU'. Learn more about Azure AD B2C billing at
     * [aka.ms/b2cBilling](https://aka.ms/b2cbilling).
     *
     * @param billingType the billingType value to set.
     * @return the B2CTenantResourcePropertiesBillingConfig object itself.
     */
    public B2CTenantResourcePropertiesBillingConfig withBillingType(BillingType billingType) {
        this.billingType = billingType;
        return this;
    }

    /**
     * Get the effectiveStartDateUtc property: The data from which the billing type took effect.
     *
     * @return the effectiveStartDateUtc value.
     */
    public String effectiveStartDateUtc() {
        return this.effectiveStartDateUtc;
    }

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