# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'GetOpenApiPricingModulesModuleResult',
    'GetOpenApiPricingModulesModuleValueResult',
    'GetOpenApiProductsProductResult',
]

@pulumi.output_type
class GetOpenApiPricingModulesModuleResult(dict):
    def __init__(__self__, *,
                 code: str,
                 id: str,
                 pricing_module_name: str,
                 product_code: str,
                 product_type: str,
                 subscription_type: str,
                 unit: str,
                 values: Sequence['outputs.GetOpenApiPricingModulesModuleValueResult']):
        """
        :param str code: Property Code.
        :param str id: A list of Price Module IDs.
        :param str pricing_module_name: Attribute name.
        :param str product_code: The product code.
        :param str product_type: The product type.
        :param str subscription_type: Subscription type. Value:
               * Subscription: Prepaid.
               * PayAsYouGo: postpaid.
        :param str unit: Attribute unit.
        :param Sequence['GetOpenApiPricingModulesModuleValueArgs'] values: Property.
        """
        pulumi.set(__self__, "code", code)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "pricing_module_name", pricing_module_name)
        pulumi.set(__self__, "product_code", product_code)
        pulumi.set(__self__, "product_type", product_type)
        pulumi.set(__self__, "subscription_type", subscription_type)
        pulumi.set(__self__, "unit", unit)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def code(self) -> str:
        """
        Property Code.
        """
        return pulumi.get(self, "code")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        A list of Price Module IDs.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="pricingModuleName")
    def pricing_module_name(self) -> str:
        """
        Attribute name.
        """
        return pulumi.get(self, "pricing_module_name")

    @property
    @pulumi.getter(name="productCode")
    def product_code(self) -> str:
        """
        The product code.
        """
        return pulumi.get(self, "product_code")

    @property
    @pulumi.getter(name="productType")
    def product_type(self) -> str:
        """
        The product type.
        """
        return pulumi.get(self, "product_type")

    @property
    @pulumi.getter(name="subscriptionType")
    def subscription_type(self) -> str:
        """
        Subscription type. Value:
        * Subscription: Prepaid.
        * PayAsYouGo: postpaid.
        """
        return pulumi.get(self, "subscription_type")

    @property
    @pulumi.getter
    def unit(self) -> str:
        """
        Attribute unit.
        """
        return pulumi.get(self, "unit")

    @property
    @pulumi.getter
    def values(self) -> Sequence['outputs.GetOpenApiPricingModulesModuleValueResult']:
        """
        Property.
        """
        return pulumi.get(self, "values")


@pulumi.output_type
class GetOpenApiPricingModulesModuleValueResult(dict):
    def __init__(__self__, *,
                 name: str,
                 remark: str,
                 type: str,
                 value: str):
        """
        :param str name: The module Code corresponds to the attribute value.
        :param str remark: Module value description information.
        :param str type: The attribute value type corresponding to the module Code. Value:
               * single_float: single value type.
               * range_float: range value type.
        :param str value: The module Code corresponds to the attribute value.
               > format 1024-1024000 when Type = range_float: 1024 means from 1024 to 1024000, step size 1024.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "remark", remark)
        pulumi.set(__self__, "type", type)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The module Code corresponds to the attribute value.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def remark(self) -> str:
        """
        Module value description information.
        """
        return pulumi.get(self, "remark")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The attribute value type corresponding to the module Code. Value:
        * single_float: single value type.
        * range_float: range value type.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        The module Code corresponds to the attribute value.
        > format 1024-1024000 when Type = range_float: 1024 means from 1024 to 1024000, step size 1024.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetOpenApiProductsProductResult(dict):
    def __init__(__self__, *,
                 id: str,
                 product_code: str,
                 product_name: str,
                 product_type: str,
                 subscription_type: str):
        """
        :param str id: The ID of the product. The value is formulated as `<product_code>:<product_type>:<subscription_type>`.
        :param str product_code: Product code.
        :param str product_name: Product name.
        :param str product_type: Type of product.
        :param str subscription_type: Subscription type. Value:
               * Subscription: Prepaid.
               * PayAsYouGo: postpaid.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "product_code", product_code)
        pulumi.set(__self__, "product_name", product_name)
        pulumi.set(__self__, "product_type", product_type)
        pulumi.set(__self__, "subscription_type", subscription_type)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the product. The value is formulated as `<product_code>:<product_type>:<subscription_type>`.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="productCode")
    def product_code(self) -> str:
        """
        Product code.
        """
        return pulumi.get(self, "product_code")

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

    @property
    @pulumi.getter(name="productType")
    def product_type(self) -> str:
        """
        Type of product.
        """
        return pulumi.get(self, "product_type")

    @property
    @pulumi.getter(name="subscriptionType")
    def subscription_type(self) -> str:
        """
        Subscription type. Value:
        * Subscription: Prepaid.
        * PayAsYouGo: postpaid.
        """
        return pulumi.get(self, "subscription_type")


