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

com.pulumi.azurenative.billing.kotlin.outputs.BillingProfilePropertiesResponse.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.billing.kotlin.outputs

import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map

/**
 * A billing profile.
 * @property billTo Billing address.
 * @property billingRelationshipType Identifies the billing relationship represented by the billing profile. The billing relationship may be between Microsoft, the customer, and/or a third-party.
 * @property currency The currency in which the charges for the billing profile are billed.
 * @property currentPaymentTerm The current payment term of the billing profile.
 * @property displayName The name of the billing profile.
 * @property enabledAzurePlans Information about the enabled azure plans.
 * @property hasReadAccess Indicates whether user has read access to the billing profile.
 * @property indirectRelationshipInfo Identifies the billing profile that is linked to another billing profile in indirect purchase motion.
 * @property invoiceDay The day of the month when the invoice for the billing profile is generated.
 * @property invoiceEmailOptIn Flag controlling whether the invoices for the billing profile are sent through email.
 * @property invoiceRecipients The list of email addresses to receive invoices by email for the billing profile.
 * @property otherPaymentTerms The other payment terms of the billing profile.
 * @property poNumber The default purchase order number that will appear on the invoices generated for the billing profile.
 * @property provisioningState The provisioning state of the resource during a long-running operation.
 * @property 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.
 * @property soldTo The address of the individual or organization that is responsible for the billing account.
 * @property spendingLimit The billing profile spending limit.
 * @property spendingLimitDetails The details of billing profile spending limit.
 * @property status The status of the billing profile.
 * @property statusReasonCode Reason for the specified billing profile status.
 * @property systemId The system generated unique identifier for a billing profile.
 * @property 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 < > % & \ ? /
 * @property targetClouds Identifies the cloud environments that are associated with a billing profile. This is a system managed optional field and gets updated as the billing profile gets associated with accounts in various clouds.
 */
public data class BillingProfilePropertiesResponse(
    public val billTo: BillingProfilePropertiesResponseBillTo? = null,
    public val billingRelationshipType: String,
    public val currency: String,
    public val currentPaymentTerm: BillingProfilePropertiesResponseCurrentPaymentTerm? = null,
    public val displayName: String? = null,
    public val enabledAzurePlans: List? = null,
    public val hasReadAccess: Boolean,
    public val indirectRelationshipInfo: BillingProfilePropertiesResponseIndirectRelationshipInfo? =
        null,
    public val invoiceDay: Int,
    public val invoiceEmailOptIn: Boolean? = null,
    public val invoiceRecipients: List? = null,
    public val otherPaymentTerms: List,
    public val poNumber: String? = null,
    public val provisioningState: String,
    public val shipTo: BillingProfilePropertiesResponseShipTo? = null,
    public val soldTo: BillingProfilePropertiesResponseSoldTo? = null,
    public val spendingLimit: String,
    public val spendingLimitDetails: List,
    public val status: String,
    public val statusReasonCode: String,
    public val systemId: String,
    public val tags: Map? = null,
    public val targetClouds: List,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.azurenative.billing.outputs.BillingProfilePropertiesResponse): BillingProfilePropertiesResponse = BillingProfilePropertiesResponse(
            billTo = javaType.billTo().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.billing.kotlin.outputs.BillingProfilePropertiesResponseBillTo.Companion.toKotlin(args0)
                })
            }).orElse(null),
            billingRelationshipType = javaType.billingRelationshipType(),
            currency = javaType.currency(),
            currentPaymentTerm = javaType.currentPaymentTerm().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.billing.kotlin.outputs.BillingProfilePropertiesResponseCurrentPaymentTerm.Companion.toKotlin(args0)
                })
            }).orElse(null),
            displayName = javaType.displayName().map({ args0 -> args0 }).orElse(null),
            enabledAzurePlans = javaType.enabledAzurePlans().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.billing.kotlin.outputs.AzurePlanResponse.Companion.toKotlin(args0)
                })
            }),
            hasReadAccess = javaType.hasReadAccess(),
            indirectRelationshipInfo = javaType.indirectRelationshipInfo().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.billing.kotlin.outputs.BillingProfilePropertiesResponseIndirectRelationshipInfo.Companion.toKotlin(args0)
                })
            }).orElse(null),
            invoiceDay = javaType.invoiceDay(),
            invoiceEmailOptIn = javaType.invoiceEmailOptIn().map({ args0 -> args0 }).orElse(null),
            invoiceRecipients = javaType.invoiceRecipients().map({ args0 -> args0 }),
            otherPaymentTerms = javaType.otherPaymentTerms().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.billing.kotlin.outputs.PaymentTermResponse.Companion.toKotlin(args0)
                })
            }),
            poNumber = javaType.poNumber().map({ args0 -> args0 }).orElse(null),
            provisioningState = javaType.provisioningState(),
            shipTo = javaType.shipTo().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.billing.kotlin.outputs.BillingProfilePropertiesResponseShipTo.Companion.toKotlin(args0)
                })
            }).orElse(null),
            soldTo = javaType.soldTo().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.billing.kotlin.outputs.BillingProfilePropertiesResponseSoldTo.Companion.toKotlin(args0)
                })
            }).orElse(null),
            spendingLimit = javaType.spendingLimit(),
            spendingLimitDetails = javaType.spendingLimitDetails().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.azurenative.billing.kotlin.outputs.SpendingLimitDetailsResponse.Companion.toKotlin(args0)
                })
            }),
            status = javaType.status(),
            statusReasonCode = javaType.statusReasonCode(),
            systemId = javaType.systemId(),
            tags = javaType.tags().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            targetClouds = javaType.targetClouds().map({ args0 -> args0 }),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy