# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'GetConsumptionsConsumptionResult',
    'GetInvoicesInvoiceResult',
]

@pulumi.output_type
class GetConsumptionsConsumptionResult(dict):
    def __init__(__self__, *,
                 billed_quantity: _builtins.str,
                 category_name: _builtins.str,
                 product_name: _builtins.str,
                 project_id: _builtins.str,
                 sku: _builtins.str,
                 unit: _builtins.str,
                 value: _builtins.str):
        """
        :param _builtins.str billed_quantity: The consumed quantity.
        :param _builtins.str category_name: The name of the consumption category.
        :param _builtins.str product_name: The product name.
        :param _builtins.str project_id: `project_id`) The ID of the project the consumption list is associated with.
        :param _builtins.str sku: The unique identifier of the product.
        :param _builtins.str unit: The unit of consumed quantity.
        :param _builtins.str value: The monetary value of the consumption.
        """
        pulumi.set(__self__, "billed_quantity", billed_quantity)
        pulumi.set(__self__, "category_name", category_name)
        pulumi.set(__self__, "product_name", product_name)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "sku", sku)
        pulumi.set(__self__, "unit", unit)
        pulumi.set(__self__, "value", value)

    @_builtins.property
    @pulumi.getter(name="billedQuantity")
    def billed_quantity(self) -> _builtins.str:
        """
        The consumed quantity.
        """
        return pulumi.get(self, "billed_quantity")

    @_builtins.property
    @pulumi.getter(name="categoryName")
    def category_name(self) -> _builtins.str:
        """
        The name of the consumption category.
        """
        return pulumi.get(self, "category_name")

    @_builtins.property
    @pulumi.getter(name="productName")
    def product_name(self) -> _builtins.str:
        """
        The product name.
        """
        return pulumi.get(self, "product_name")

    @_builtins.property
    @pulumi.getter(name="projectId")
    def project_id(self) -> _builtins.str:
        """
        `project_id`) The ID of the project the consumption list is associated with.
        """
        return pulumi.get(self, "project_id")

    @_builtins.property
    @pulumi.getter
    def sku(self) -> _builtins.str:
        """
        The unique identifier of the product.
        """
        return pulumi.get(self, "sku")

    @_builtins.property
    @pulumi.getter
    def unit(self) -> _builtins.str:
        """
        The unit of consumed quantity.
        """
        return pulumi.get(self, "unit")

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        """
        The monetary value of the consumption.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetInvoicesInvoiceResult(dict):
    def __init__(__self__, *,
                 billing_period: _builtins.str,
                 due_date: _builtins.str,
                 id: _builtins.str,
                 invoice_type: _builtins.str,
                 issued_date: _builtins.str,
                 number: _builtins.int,
                 organization_name: _builtins.str,
                 seller_name: _builtins.str,
                 start_date: _builtins.str,
                 state: _builtins.str,
                 stop_date: _builtins.str,
                 total_discount: _builtins.str,
                 total_tax: _builtins.str,
                 total_taxed: _builtins.str,
                 total_undiscount: _builtins.str,
                 total_untaxed: _builtins.str):
        """
        :param _builtins.str billing_period: The billing period of the invoice in the YYYY-MM format.
        :param _builtins.str due_date: The payment time limit, set according to the Organization's payment conditions (RFC 3339 format).
        :param _builtins.str id: The associated invoice ID.
        :param _builtins.str invoice_type: Invoices with the given type are listed. Valid values are `periodic` and `purchase`.
        :param _builtins.str issued_date: The date when the invoice was sent to the customer (RFC 3339 format).
        :param _builtins.int number: The invoice number.
        :param _builtins.str organization_name: The organization name.
        :param _builtins.str seller_name: The name of the seller (Scaleway).
        :param _builtins.str start_date: The start date of the billing period (RFC 3339 format).
        :param _builtins.str state: The state of the invoice.
        :param _builtins.str stop_date: The end date of the billing period (RFC 3339 format).
        :param _builtins.str total_discount: The total discount amount of the invoice.
        :param _builtins.str total_tax: The total tax amount of the invoice.
        :param _builtins.str total_taxed: The total amount, taxed.
        :param _builtins.str total_undiscount: The total amount of the invoice before applying the discount.
        :param _builtins.str total_untaxed: The total amount, untaxed.
        """
        pulumi.set(__self__, "billing_period", billing_period)
        pulumi.set(__self__, "due_date", due_date)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "invoice_type", invoice_type)
        pulumi.set(__self__, "issued_date", issued_date)
        pulumi.set(__self__, "number", number)
        pulumi.set(__self__, "organization_name", organization_name)
        pulumi.set(__self__, "seller_name", seller_name)
        pulumi.set(__self__, "start_date", start_date)
        pulumi.set(__self__, "state", state)
        pulumi.set(__self__, "stop_date", stop_date)
        pulumi.set(__self__, "total_discount", total_discount)
        pulumi.set(__self__, "total_tax", total_tax)
        pulumi.set(__self__, "total_taxed", total_taxed)
        pulumi.set(__self__, "total_undiscount", total_undiscount)
        pulumi.set(__self__, "total_untaxed", total_untaxed)

    @_builtins.property
    @pulumi.getter(name="billingPeriod")
    def billing_period(self) -> _builtins.str:
        """
        The billing period of the invoice in the YYYY-MM format.
        """
        return pulumi.get(self, "billing_period")

    @_builtins.property
    @pulumi.getter(name="dueDate")
    def due_date(self) -> _builtins.str:
        """
        The payment time limit, set according to the Organization's payment conditions (RFC 3339 format).
        """
        return pulumi.get(self, "due_date")

    @_builtins.property
    @pulumi.getter
    def id(self) -> _builtins.str:
        """
        The associated invoice ID.
        """
        return pulumi.get(self, "id")

    @_builtins.property
    @pulumi.getter(name="invoiceType")
    def invoice_type(self) -> _builtins.str:
        """
        Invoices with the given type are listed. Valid values are `periodic` and `purchase`.
        """
        return pulumi.get(self, "invoice_type")

    @_builtins.property
    @pulumi.getter(name="issuedDate")
    def issued_date(self) -> _builtins.str:
        """
        The date when the invoice was sent to the customer (RFC 3339 format).
        """
        return pulumi.get(self, "issued_date")

    @_builtins.property
    @pulumi.getter
    def number(self) -> _builtins.int:
        """
        The invoice number.
        """
        return pulumi.get(self, "number")

    @_builtins.property
    @pulumi.getter(name="organizationName")
    def organization_name(self) -> _builtins.str:
        """
        The organization name.
        """
        return pulumi.get(self, "organization_name")

    @_builtins.property
    @pulumi.getter(name="sellerName")
    def seller_name(self) -> _builtins.str:
        """
        The name of the seller (Scaleway).
        """
        return pulumi.get(self, "seller_name")

    @_builtins.property
    @pulumi.getter(name="startDate")
    def start_date(self) -> _builtins.str:
        """
        The start date of the billing period (RFC 3339 format).
        """
        return pulumi.get(self, "start_date")

    @_builtins.property
    @pulumi.getter
    def state(self) -> _builtins.str:
        """
        The state of the invoice.
        """
        return pulumi.get(self, "state")

    @_builtins.property
    @pulumi.getter(name="stopDate")
    def stop_date(self) -> _builtins.str:
        """
        The end date of the billing period (RFC 3339 format).
        """
        return pulumi.get(self, "stop_date")

    @_builtins.property
    @pulumi.getter(name="totalDiscount")
    def total_discount(self) -> _builtins.str:
        """
        The total discount amount of the invoice.
        """
        return pulumi.get(self, "total_discount")

    @_builtins.property
    @pulumi.getter(name="totalTax")
    def total_tax(self) -> _builtins.str:
        """
        The total tax amount of the invoice.
        """
        return pulumi.get(self, "total_tax")

    @_builtins.property
    @pulumi.getter(name="totalTaxed")
    def total_taxed(self) -> _builtins.str:
        """
        The total amount, taxed.
        """
        return pulumi.get(self, "total_taxed")

    @_builtins.property
    @pulumi.getter(name="totalUndiscount")
    def total_undiscount(self) -> _builtins.str:
        """
        The total amount of the invoice before applying the discount.
        """
        return pulumi.get(self, "total_undiscount")

    @_builtins.property
    @pulumi.getter(name="totalUntaxed")
    def total_untaxed(self) -> _builtins.str:
        """
        The total amount, untaxed.
        """
        return pulumi.get(self, "total_untaxed")


