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

com.pulumi.azurenative.billing.inputs.BillingProfilePropertiesArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.billing.inputs;

import com.pulumi.azurenative.billing.inputs.AzurePlanArgs;
import com.pulumi.azurenative.billing.inputs.BillingProfilePropertiesBillToArgs;
import com.pulumi.azurenative.billing.inputs.BillingProfilePropertiesCurrentPaymentTermArgs;
import com.pulumi.azurenative.billing.inputs.BillingProfilePropertiesIndirectRelationshipInfoArgs;
import com.pulumi.azurenative.billing.inputs.BillingProfilePropertiesShipToArgs;
import com.pulumi.azurenative.billing.inputs.BillingProfilePropertiesSoldToArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * A billing profile.
 * 
 */
public final class BillingProfilePropertiesArgs extends com.pulumi.resources.ResourceArgs {

    public static final BillingProfilePropertiesArgs Empty = new BillingProfilePropertiesArgs();

    /**
     * Billing address.
     * 
     */
    @Import(name="billTo")
    private @Nullable Output billTo;

    /**
     * @return Billing address.
     * 
     */
    public Optional> billTo() {
        return Optional.ofNullable(this.billTo);
    }

    /**
     * The current payment term of the billing profile.
     * 
     */
    @Import(name="currentPaymentTerm")
    private @Nullable Output currentPaymentTerm;

    /**
     * @return The current payment term of the billing profile.
     * 
     */
    public Optional> currentPaymentTerm() {
        return Optional.ofNullable(this.currentPaymentTerm);
    }

    /**
     * The name of the billing profile.
     * 
     */
    @Import(name="displayName")
    private @Nullable Output displayName;

    /**
     * @return The name of the billing profile.
     * 
     */
    public Optional> displayName() {
        return Optional.ofNullable(this.displayName);
    }

    /**
     * Information about the enabled azure plans.
     * 
     */
    @Import(name="enabledAzurePlans")
    private @Nullable Output> enabledAzurePlans;

    /**
     * @return Information about the enabled azure plans.
     * 
     */
    public Optional>> enabledAzurePlans() {
        return Optional.ofNullable(this.enabledAzurePlans);
    }

    /**
     * Identifies the billing profile that is linked to another billing profile in indirect purchase motion.
     * 
     */
    @Import(name="indirectRelationshipInfo")
    private @Nullable Output indirectRelationshipInfo;

    /**
     * @return Identifies the billing profile that is linked to another billing profile in indirect purchase motion.
     * 
     */
    public Optional> indirectRelationshipInfo() {
        return Optional.ofNullable(this.indirectRelationshipInfo);
    }

    /**
     * Flag controlling whether the invoices for the billing profile are sent through email.
     * 
     */
    @Import(name="invoiceEmailOptIn")
    private @Nullable Output invoiceEmailOptIn;

    /**
     * @return Flag controlling whether the invoices for the billing profile are sent through email.
     * 
     */
    public Optional> invoiceEmailOptIn() {
        return Optional.ofNullable(this.invoiceEmailOptIn);
    }

    /**
     * The list of email addresses to receive invoices by email for the billing profile.
     * 
     */
    @Import(name="invoiceRecipients")
    private @Nullable Output> invoiceRecipients;

    /**
     * @return The list of email addresses to receive invoices by email for the billing profile.
     * 
     */
    public Optional>> invoiceRecipients() {
        return Optional.ofNullable(this.invoiceRecipients);
    }

    /**
     * The default purchase order number that will appear on the invoices generated for the billing profile.
     * 
     */
    @Import(name="poNumber")
    private @Nullable Output poNumber;

    /**
     * @return The default purchase order number that will appear on the invoices generated for the billing profile.
     * 
     */
    public Optional> poNumber() {
        return Optional.ofNullable(this.poNumber);
    }

    /**
     * The default address where the products are shipped, or the services are being used. If a ship to is not specified for a product or a subscription, then this address will be used.
     * 
     */
    @Import(name="shipTo")
    private @Nullable Output shipTo;

    /**
     * @return The default address where the products are shipped, or the services are being used. If a ship to is not specified for a product or a subscription, then this address will be used.
     * 
     */
    public Optional> shipTo() {
        return Optional.ofNullable(this.shipTo);
    }

    /**
     * The address of the individual or organization that is responsible for the billing account.
     * 
     */
    @Import(name="soldTo")
    private @Nullable Output soldTo;

    /**
     * @return The address of the individual or organization that is responsible for the billing account.
     * 
     */
    public Optional> soldTo() {
        return Optional.ofNullable(this.soldTo);
    }

    /**
     * Dictionary of metadata associated with the resource. Maximum key/value length supported of 256 characters. Keys/value should not empty value nor null. Keys can not contain < > % & \ ? /
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Dictionary of metadata associated with the resource. Maximum key/value length supported of 256 characters. Keys/value should not empty value nor null. Keys can not contain < > % & \ ? /
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private BillingProfilePropertiesArgs() {}

    private BillingProfilePropertiesArgs(BillingProfilePropertiesArgs $) {
        this.billTo = $.billTo;
        this.currentPaymentTerm = $.currentPaymentTerm;
        this.displayName = $.displayName;
        this.enabledAzurePlans = $.enabledAzurePlans;
        this.indirectRelationshipInfo = $.indirectRelationshipInfo;
        this.invoiceEmailOptIn = $.invoiceEmailOptIn;
        this.invoiceRecipients = $.invoiceRecipients;
        this.poNumber = $.poNumber;
        this.shipTo = $.shipTo;
        this.soldTo = $.soldTo;
        this.tags = $.tags;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(BillingProfilePropertiesArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private BillingProfilePropertiesArgs $;

        public Builder() {
            $ = new BillingProfilePropertiesArgs();
        }

        public Builder(BillingProfilePropertiesArgs defaults) {
            $ = new BillingProfilePropertiesArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param billTo Billing address.
         * 
         * @return builder
         * 
         */
        public Builder billTo(@Nullable Output billTo) {
            $.billTo = billTo;
            return this;
        }

        /**
         * @param billTo Billing address.
         * 
         * @return builder
         * 
         */
        public Builder billTo(BillingProfilePropertiesBillToArgs billTo) {
            return billTo(Output.of(billTo));
        }

        /**
         * @param currentPaymentTerm The current payment term of the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder currentPaymentTerm(@Nullable Output currentPaymentTerm) {
            $.currentPaymentTerm = currentPaymentTerm;
            return this;
        }

        /**
         * @param currentPaymentTerm The current payment term of the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder currentPaymentTerm(BillingProfilePropertiesCurrentPaymentTermArgs currentPaymentTerm) {
            return currentPaymentTerm(Output.of(currentPaymentTerm));
        }

        /**
         * @param displayName The name of the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder displayName(@Nullable Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName The name of the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param enabledAzurePlans Information about the enabled azure plans.
         * 
         * @return builder
         * 
         */
        public Builder enabledAzurePlans(@Nullable Output> enabledAzurePlans) {
            $.enabledAzurePlans = enabledAzurePlans;
            return this;
        }

        /**
         * @param enabledAzurePlans Information about the enabled azure plans.
         * 
         * @return builder
         * 
         */
        public Builder enabledAzurePlans(List enabledAzurePlans) {
            return enabledAzurePlans(Output.of(enabledAzurePlans));
        }

        /**
         * @param enabledAzurePlans Information about the enabled azure plans.
         * 
         * @return builder
         * 
         */
        public Builder enabledAzurePlans(AzurePlanArgs... enabledAzurePlans) {
            return enabledAzurePlans(List.of(enabledAzurePlans));
        }

        /**
         * @param indirectRelationshipInfo Identifies the billing profile that is linked to another billing profile in indirect purchase motion.
         * 
         * @return builder
         * 
         */
        public Builder indirectRelationshipInfo(@Nullable Output indirectRelationshipInfo) {
            $.indirectRelationshipInfo = indirectRelationshipInfo;
            return this;
        }

        /**
         * @param indirectRelationshipInfo Identifies the billing profile that is linked to another billing profile in indirect purchase motion.
         * 
         * @return builder
         * 
         */
        public Builder indirectRelationshipInfo(BillingProfilePropertiesIndirectRelationshipInfoArgs indirectRelationshipInfo) {
            return indirectRelationshipInfo(Output.of(indirectRelationshipInfo));
        }

        /**
         * @param invoiceEmailOptIn Flag controlling whether the invoices for the billing profile are sent through email.
         * 
         * @return builder
         * 
         */
        public Builder invoiceEmailOptIn(@Nullable Output invoiceEmailOptIn) {
            $.invoiceEmailOptIn = invoiceEmailOptIn;
            return this;
        }

        /**
         * @param invoiceEmailOptIn Flag controlling whether the invoices for the billing profile are sent through email.
         * 
         * @return builder
         * 
         */
        public Builder invoiceEmailOptIn(Boolean invoiceEmailOptIn) {
            return invoiceEmailOptIn(Output.of(invoiceEmailOptIn));
        }

        /**
         * @param invoiceRecipients The list of email addresses to receive invoices by email for the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder invoiceRecipients(@Nullable Output> invoiceRecipients) {
            $.invoiceRecipients = invoiceRecipients;
            return this;
        }

        /**
         * @param invoiceRecipients The list of email addresses to receive invoices by email for the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder invoiceRecipients(List invoiceRecipients) {
            return invoiceRecipients(Output.of(invoiceRecipients));
        }

        /**
         * @param invoiceRecipients The list of email addresses to receive invoices by email for the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder invoiceRecipients(String... invoiceRecipients) {
            return invoiceRecipients(List.of(invoiceRecipients));
        }

        /**
         * @param poNumber The default purchase order number that will appear on the invoices generated for the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder poNumber(@Nullable Output poNumber) {
            $.poNumber = poNumber;
            return this;
        }

        /**
         * @param poNumber The default purchase order number that will appear on the invoices generated for the billing profile.
         * 
         * @return builder
         * 
         */
        public Builder poNumber(String poNumber) {
            return poNumber(Output.of(poNumber));
        }

        /**
         * @param shipTo The default address where the products are shipped, or the services are being used. If a ship to is not specified for a product or a subscription, then this address will be used.
         * 
         * @return builder
         * 
         */
        public Builder shipTo(@Nullable Output shipTo) {
            $.shipTo = shipTo;
            return this;
        }

        /**
         * @param shipTo The default address where the products are shipped, or the services are being used. If a ship to is not specified for a product or a subscription, then this address will be used.
         * 
         * @return builder
         * 
         */
        public Builder shipTo(BillingProfilePropertiesShipToArgs shipTo) {
            return shipTo(Output.of(shipTo));
        }

        /**
         * @param soldTo The address of the individual or organization that is responsible for the billing account.
         * 
         * @return builder
         * 
         */
        public Builder soldTo(@Nullable Output soldTo) {
            $.soldTo = soldTo;
            return this;
        }

        /**
         * @param soldTo The address of the individual or organization that is responsible for the billing account.
         * 
         * @return builder
         * 
         */
        public Builder soldTo(BillingProfilePropertiesSoldToArgs soldTo) {
            return soldTo(Output.of(soldTo));
        }

        /**
         * @param tags Dictionary of metadata associated with the resource. Maximum key/value length supported of 256 characters. Keys/value should not empty value nor null. Keys can not contain < > % & \ ? /
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Dictionary of metadata associated with the resource. Maximum key/value length supported of 256 characters. Keys/value should not empty value nor null. Keys can not contain < > % & \ ? /
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public BillingProfilePropertiesArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy