# 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__ = [
    'ApplicationInfoDimension',
    'QuotaAlarmQuotaDimension',
    'QuotaApplicationDimension',
    'TemplateQuotaDimension',
    'GetApplicationInfosApplicationResult',
    'GetApplicationInfosApplicationDimensionResult',
    'GetApplicationInfosDimensionResult',
    'GetQuotaAlarmsAlarmResult',
    'GetQuotaAlarmsAlarmQuotaDimensionResult',
    'GetQuotaAlarmsQuotaDimensionResult',
    'GetQuotaApplicationsApplicationResult',
    'GetQuotaApplicationsApplicationDimensionResult',
    'GetQuotaApplicationsDimensionResult',
    'GetQuotasDimensionResult',
    'GetQuotasQuotaResult',
]

@pulumi.output_type
class ApplicationInfoDimension(dict):
    def __init__(__self__, *,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        return pulumi.get(self, "value")


@pulumi.output_type
class QuotaAlarmQuotaDimension(dict):
    def __init__(__self__, *,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str key: The Key of quota_dimensions.
        :param str value: The Value of quota_dimensions.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        """
        The Key of quota_dimensions.
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        The Value of quota_dimensions.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class QuotaApplicationDimension(dict):
    def __init__(__self__, *,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str key: Key.
        :param str value: Value.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        """
        Key.
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        Value.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class TemplateQuotaDimension(dict):
    def __init__(__self__, *,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str key: The Key of quota_dimensions.
        :param str value: The Value of quota_dimensions.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        """
        The Key of quota_dimensions.
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        The Value of quota_dimensions.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetApplicationInfosApplicationResult(dict):
    def __init__(__self__, *,
                 application_id: str,
                 approve_value: str,
                 audit_reason: str,
                 desire_value: float,
                 dimensions: Sequence['outputs.GetApplicationInfosApplicationDimensionResult'],
                 effective_time: str,
                 expire_time: str,
                 id: str,
                 notice_type: int,
                 product_code: str,
                 quota_action_code: str,
                 quota_description: str,
                 quota_name: str,
                 quota_unit: str,
                 reason: str,
                 status: str):
        pulumi.set(__self__, "application_id", application_id)
        pulumi.set(__self__, "approve_value", approve_value)
        pulumi.set(__self__, "audit_reason", audit_reason)
        pulumi.set(__self__, "desire_value", desire_value)
        pulumi.set(__self__, "dimensions", dimensions)
        pulumi.set(__self__, "effective_time", effective_time)
        pulumi.set(__self__, "expire_time", expire_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "notice_type", notice_type)
        pulumi.set(__self__, "product_code", product_code)
        pulumi.set(__self__, "quota_action_code", quota_action_code)
        pulumi.set(__self__, "quota_description", quota_description)
        pulumi.set(__self__, "quota_name", quota_name)
        pulumi.set(__self__, "quota_unit", quota_unit)
        pulumi.set(__self__, "reason", reason)
        pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="applicationId")
    def application_id(self) -> str:
        return pulumi.get(self, "application_id")

    @property
    @pulumi.getter(name="approveValue")
    def approve_value(self) -> str:
        return pulumi.get(self, "approve_value")

    @property
    @pulumi.getter(name="auditReason")
    def audit_reason(self) -> str:
        return pulumi.get(self, "audit_reason")

    @property
    @pulumi.getter(name="desireValue")
    def desire_value(self) -> float:
        return pulumi.get(self, "desire_value")

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

    @property
    @pulumi.getter(name="effectiveTime")
    def effective_time(self) -> str:
        return pulumi.get(self, "effective_time")

    @property
    @pulumi.getter(name="expireTime")
    def expire_time(self) -> str:
        return pulumi.get(self, "expire_time")

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

    @property
    @pulumi.getter(name="noticeType")
    def notice_type(self) -> int:
        return pulumi.get(self, "notice_type")

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

    @property
    @pulumi.getter(name="quotaActionCode")
    def quota_action_code(self) -> str:
        return pulumi.get(self, "quota_action_code")

    @property
    @pulumi.getter(name="quotaDescription")
    def quota_description(self) -> str:
        return pulumi.get(self, "quota_description")

    @property
    @pulumi.getter(name="quotaName")
    def quota_name(self) -> str:
        return pulumi.get(self, "quota_name")

    @property
    @pulumi.getter(name="quotaUnit")
    def quota_unit(self) -> str:
        return pulumi.get(self, "quota_unit")

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

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


@pulumi.output_type
class GetApplicationInfosApplicationDimensionResult(dict):
    def __init__(__self__, *,
                 key: str,
                 value: str):
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

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

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


@pulumi.output_type
class GetApplicationInfosDimensionResult(dict):
    def __init__(__self__, *,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        return pulumi.get(self, "value")


@pulumi.output_type
class GetQuotaAlarmsAlarmResult(dict):
    def __init__(__self__, *,
                 alarm_id: str,
                 id: str,
                 product_code: str,
                 quota_action_code: str,
                 quota_alarm_name: str,
                 quota_dimensions: Sequence['outputs.GetQuotaAlarmsAlarmQuotaDimensionResult'],
                 threshold: float,
                 threshold_percent: float,
                 web_hook: str):
        """
        :param str alarm_id: The first ID of the resource.
        :param str id: The ID of the Quota Alarm.
        :param str product_code: The Product Code.
        :param str quota_action_code: The Quota Action Code.
        :param str quota_alarm_name: The name of Quota Alarm.
        :param Sequence['GetQuotaAlarmsAlarmQuotaDimensionArgs'] quota_dimensions: The Quota Dimensions.
        :param float threshold: The threshold of Quota Alarm.
        :param float threshold_percent: The threshold percent of Quota Alarm.
        :param str web_hook: The WebHook of Quota Alarm.
        """
        pulumi.set(__self__, "alarm_id", alarm_id)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "product_code", product_code)
        pulumi.set(__self__, "quota_action_code", quota_action_code)
        pulumi.set(__self__, "quota_alarm_name", quota_alarm_name)
        pulumi.set(__self__, "quota_dimensions", quota_dimensions)
        pulumi.set(__self__, "threshold", threshold)
        pulumi.set(__self__, "threshold_percent", threshold_percent)
        pulumi.set(__self__, "web_hook", web_hook)

    @property
    @pulumi.getter(name="alarmId")
    def alarm_id(self) -> str:
        """
        The first ID of the resource.
        """
        return pulumi.get(self, "alarm_id")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Quota Alarm.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter(name="quotaActionCode")
    def quota_action_code(self) -> str:
        """
        The Quota Action Code.
        """
        return pulumi.get(self, "quota_action_code")

    @property
    @pulumi.getter(name="quotaAlarmName")
    def quota_alarm_name(self) -> str:
        """
        The name of Quota Alarm.
        """
        return pulumi.get(self, "quota_alarm_name")

    @property
    @pulumi.getter(name="quotaDimensions")
    def quota_dimensions(self) -> Sequence['outputs.GetQuotaAlarmsAlarmQuotaDimensionResult']:
        """
        The Quota Dimensions.
        """
        return pulumi.get(self, "quota_dimensions")

    @property
    @pulumi.getter
    def threshold(self) -> float:
        """
        The threshold of Quota Alarm.
        """
        return pulumi.get(self, "threshold")

    @property
    @pulumi.getter(name="thresholdPercent")
    def threshold_percent(self) -> float:
        """
        The threshold percent of Quota Alarm.
        """
        return pulumi.get(self, "threshold_percent")

    @property
    @pulumi.getter(name="webHook")
    def web_hook(self) -> str:
        """
        The WebHook of Quota Alarm.
        """
        return pulumi.get(self, "web_hook")


@pulumi.output_type
class GetQuotaAlarmsAlarmQuotaDimensionResult(dict):
    def __init__(__self__, *,
                 key: str,
                 value: str):
        """
        :param str key: The key of quota_dimensions.
        :param str value: The value of quota_dimensions.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> str:
        """
        The key of quota_dimensions.
        """
        return pulumi.get(self, "key")

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


@pulumi.output_type
class GetQuotaAlarmsQuotaDimensionResult(dict):
    def __init__(__self__, *,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str key: The key of quota_dimensions.
        :param str value: The value of quota_dimensions.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        """
        The key of quota_dimensions.
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        The value of quota_dimensions.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetQuotaApplicationsApplicationResult(dict):
    def __init__(__self__, *,
                 application_id: str,
                 approve_value: str,
                 audit_reason: str,
                 desire_value: float,
                 dimensions: Sequence['outputs.GetQuotaApplicationsApplicationDimensionResult'],
                 effective_time: str,
                 expire_time: str,
                 id: str,
                 notice_type: int,
                 product_code: str,
                 quota_action_code: str,
                 quota_description: str,
                 quota_name: str,
                 quota_unit: str,
                 reason: str,
                 status: str):
        """
        :param str application_id: The first ID of the resource.
        :param str approve_value: The approve value.
        :param str audit_reason: The audit reason.
        :param float desire_value: The desire value of the quota application.
        :param Sequence['GetQuotaApplicationsApplicationDimensionArgs'] dimensions: The quota dimensions.
        :param str effective_time: The effective time.
        :param str expire_time: The expire time.
        :param str id: The ID of the Application Info.
        :param int notice_type: The notice type.
        :param str product_code: The product code.
        :param str quota_action_code: The ID of quota action..
        :param str quota_description: The description of the quota.
        :param str quota_name: The name of the quota.
        :param str quota_unit: The quota unit.
        :param str reason: The reason of the quota application.
        :param str status: The status of the quota application.
        """
        pulumi.set(__self__, "application_id", application_id)
        pulumi.set(__self__, "approve_value", approve_value)
        pulumi.set(__self__, "audit_reason", audit_reason)
        pulumi.set(__self__, "desire_value", desire_value)
        pulumi.set(__self__, "dimensions", dimensions)
        pulumi.set(__self__, "effective_time", effective_time)
        pulumi.set(__self__, "expire_time", expire_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "notice_type", notice_type)
        pulumi.set(__self__, "product_code", product_code)
        pulumi.set(__self__, "quota_action_code", quota_action_code)
        pulumi.set(__self__, "quota_description", quota_description)
        pulumi.set(__self__, "quota_name", quota_name)
        pulumi.set(__self__, "quota_unit", quota_unit)
        pulumi.set(__self__, "reason", reason)
        pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="applicationId")
    def application_id(self) -> str:
        """
        The first ID of the resource.
        """
        return pulumi.get(self, "application_id")

    @property
    @pulumi.getter(name="approveValue")
    def approve_value(self) -> str:
        """
        The approve value.
        """
        return pulumi.get(self, "approve_value")

    @property
    @pulumi.getter(name="auditReason")
    def audit_reason(self) -> str:
        """
        The audit reason.
        """
        return pulumi.get(self, "audit_reason")

    @property
    @pulumi.getter(name="desireValue")
    def desire_value(self) -> float:
        """
        The desire value of the quota application.
        """
        return pulumi.get(self, "desire_value")

    @property
    @pulumi.getter
    def dimensions(self) -> Sequence['outputs.GetQuotaApplicationsApplicationDimensionResult']:
        """
        The quota dimensions.
        """
        return pulumi.get(self, "dimensions")

    @property
    @pulumi.getter(name="effectiveTime")
    def effective_time(self) -> str:
        """
        The effective time.
        """
        return pulumi.get(self, "effective_time")

    @property
    @pulumi.getter(name="expireTime")
    def expire_time(self) -> str:
        """
        The expire time.
        """
        return pulumi.get(self, "expire_time")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Application Info.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="noticeType")
    def notice_type(self) -> int:
        """
        The notice type.
        """
        return pulumi.get(self, "notice_type")

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

    @property
    @pulumi.getter(name="quotaActionCode")
    def quota_action_code(self) -> str:
        """
        The ID of quota action..
        """
        return pulumi.get(self, "quota_action_code")

    @property
    @pulumi.getter(name="quotaDescription")
    def quota_description(self) -> str:
        """
        The description of the quota.
        """
        return pulumi.get(self, "quota_description")

    @property
    @pulumi.getter(name="quotaName")
    def quota_name(self) -> str:
        """
        The name of the quota.
        """
        return pulumi.get(self, "quota_name")

    @property
    @pulumi.getter(name="quotaUnit")
    def quota_unit(self) -> str:
        """
        The quota unit.
        """
        return pulumi.get(self, "quota_unit")

    @property
    @pulumi.getter
    def reason(self) -> str:
        """
        The reason of the quota application.
        """
        return pulumi.get(self, "reason")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The status of the quota application.
        """
        return pulumi.get(self, "status")


@pulumi.output_type
class GetQuotaApplicationsApplicationDimensionResult(dict):
    def __init__(__self__, *,
                 key: str,
                 value: str):
        """
        :param str key: The key of dimensions.
        :param str value: The value of dimensions.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> str:
        """
        The key of dimensions.
        """
        return pulumi.get(self, "key")

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


@pulumi.output_type
class GetQuotaApplicationsDimensionResult(dict):
    def __init__(__self__, *,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str key: The key of dimensions.
        :param str value: The value of dimensions.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        """
        The key of dimensions.
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        The value of dimensions.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetQuotasDimensionResult(dict):
    def __init__(__self__, *,
                 key: Optional[str] = None,
                 value: Optional[str] = None):
        """
        :param str key: The key of dimensions.
        :param str value: The value of dimensions.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[str]:
        """
        The key of dimensions.
        """
        return pulumi.get(self, "key")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        """
        The value of dimensions.
        """
        return pulumi.get(self, "value")


@pulumi.output_type
class GetQuotasQuotaResult(dict):
    def __init__(__self__, *,
                 adjustable: bool,
                 applicable_ranges: Sequence[str],
                 applicable_type: str,
                 consumable: bool,
                 id: str,
                 quota_action_code: str,
                 quota_description: str,
                 quota_name: str,
                 quota_type: str,
                 quota_unit: str,
                 total_quota: float,
                 total_usage: float,
                 unadjustable_detail: str):
        """
        :param bool adjustable: Is the quota adjustable.
        :param Sequence[str] applicable_ranges: The range of quota adjustment.
        :param str applicable_type: The type of quota.
        :param bool consumable: Show used quota.
        :param str id: The ID of the Quota.
        :param str quota_action_code: The quota action code.
        :param str quota_description: The quota description.
        :param str quota_name: The quota name.
        :param str quota_type: The quota type.
        :param str quota_unit: The quota unit.
        :param float total_quota: TotalQuota.
        :param float total_usage: The total of usage.
        :param str unadjustable_detail: The unadjustable detail.
        """
        pulumi.set(__self__, "adjustable", adjustable)
        pulumi.set(__self__, "applicable_ranges", applicable_ranges)
        pulumi.set(__self__, "applicable_type", applicable_type)
        pulumi.set(__self__, "consumable", consumable)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "quota_action_code", quota_action_code)
        pulumi.set(__self__, "quota_description", quota_description)
        pulumi.set(__self__, "quota_name", quota_name)
        pulumi.set(__self__, "quota_type", quota_type)
        pulumi.set(__self__, "quota_unit", quota_unit)
        pulumi.set(__self__, "total_quota", total_quota)
        pulumi.set(__self__, "total_usage", total_usage)
        pulumi.set(__self__, "unadjustable_detail", unadjustable_detail)

    @property
    @pulumi.getter
    def adjustable(self) -> bool:
        """
        Is the quota adjustable.
        """
        return pulumi.get(self, "adjustable")

    @property
    @pulumi.getter(name="applicableRanges")
    def applicable_ranges(self) -> Sequence[str]:
        """
        The range of quota adjustment.
        """
        return pulumi.get(self, "applicable_ranges")

    @property
    @pulumi.getter(name="applicableType")
    def applicable_type(self) -> str:
        """
        The type of quota.
        """
        return pulumi.get(self, "applicable_type")

    @property
    @pulumi.getter
    def consumable(self) -> bool:
        """
        Show used quota.
        """
        return pulumi.get(self, "consumable")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Quota.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="quotaActionCode")
    def quota_action_code(self) -> str:
        """
        The quota action code.
        """
        return pulumi.get(self, "quota_action_code")

    @property
    @pulumi.getter(name="quotaDescription")
    def quota_description(self) -> str:
        """
        The quota description.
        """
        return pulumi.get(self, "quota_description")

    @property
    @pulumi.getter(name="quotaName")
    def quota_name(self) -> str:
        """
        The quota name.
        """
        return pulumi.get(self, "quota_name")

    @property
    @pulumi.getter(name="quotaType")
    def quota_type(self) -> str:
        """
        The quota type.
        """
        return pulumi.get(self, "quota_type")

    @property
    @pulumi.getter(name="quotaUnit")
    def quota_unit(self) -> str:
        """
        The quota unit.
        """
        return pulumi.get(self, "quota_unit")

    @property
    @pulumi.getter(name="totalQuota")
    def total_quota(self) -> float:
        """
        TotalQuota.
        """
        return pulumi.get(self, "total_quota")

    @property
    @pulumi.getter(name="totalUsage")
    def total_usage(self) -> float:
        """
        The total of usage.
        """
        return pulumi.get(self, "total_usage")

    @property
    @pulumi.getter(name="unadjustableDetail")
    def unadjustable_detail(self) -> str:
        """
        The unadjustable detail.
        """
        return pulumi.get(self, "unadjustable_detail")


