# 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 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
from . import outputs
from ._inputs import *

__all__ = ['ResourceGroupCostManagementViewArgs', 'ResourceGroupCostManagementView']

@pulumi.input_type
class ResourceGroupCostManagementViewArgs:
    def __init__(__self__, *,
                 accumulated: pulumi.Input[bool],
                 chart_type: pulumi.Input[str],
                 dataset: pulumi.Input['ResourceGroupCostManagementViewDatasetArgs'],
                 display_name: pulumi.Input[str],
                 report_type: pulumi.Input[str],
                 resource_group_id: pulumi.Input[str],
                 timeframe: pulumi.Input[str],
                 kpis: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewKpiArgs']]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 pivots: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewPivotArgs']]]] = None):
        """
        The set of arguments for constructing a ResourceGroupCostManagementView resource.
        :param pulumi.Input[bool] accumulated: Whether the costs data in the Cost Management View are accumulated over time. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[str] chart_type: Chart type of the main view in Cost Analysis. Possible values are `Area`, `GroupedColumn`, `Line`, `StackedColumn` and `Table`.
        :param pulumi.Input['ResourceGroupCostManagementViewDatasetArgs'] dataset: A `dataset` block as defined below.
        :param pulumi.Input[str] display_name: User visible input name of the Cost Management View.
        :param pulumi.Input[str] report_type: The type of the report. The only possible value is `Usage`.
        :param pulumi.Input[str] resource_group_id: The ID of the Resource Group this View is scoped to. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[str] timeframe: The time frame for pulling data for the report. Possible values are `Custom`, `MonthToDate`, `WeekToDate` and `YearToDate`.
        :param pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewKpiArgs']]] kpis: One or more `kpi` blocks as defined below, to show in Cost Analysis UI.
        :param pulumi.Input[str] name: The name which should be used for this Cost Management View for a Resource Group. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewPivotArgs']]] pivots: One or more `pivot` blocks as defined below, containing the configuration of 3 sub-views in the Cost Analysis UI. Non table views should have three pivots.
        """
        pulumi.set(__self__, "accumulated", accumulated)
        pulumi.set(__self__, "chart_type", chart_type)
        pulumi.set(__self__, "dataset", dataset)
        pulumi.set(__self__, "display_name", display_name)
        pulumi.set(__self__, "report_type", report_type)
        pulumi.set(__self__, "resource_group_id", resource_group_id)
        pulumi.set(__self__, "timeframe", timeframe)
        if kpis is not None:
            pulumi.set(__self__, "kpis", kpis)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if pivots is not None:
            pulumi.set(__self__, "pivots", pivots)

    @property
    @pulumi.getter
    def accumulated(self) -> pulumi.Input[bool]:
        """
        Whether the costs data in the Cost Management View are accumulated over time. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "accumulated")

    @accumulated.setter
    def accumulated(self, value: pulumi.Input[bool]):
        pulumi.set(self, "accumulated", value)

    @property
    @pulumi.getter(name="chartType")
    def chart_type(self) -> pulumi.Input[str]:
        """
        Chart type of the main view in Cost Analysis. Possible values are `Area`, `GroupedColumn`, `Line`, `StackedColumn` and `Table`.
        """
        return pulumi.get(self, "chart_type")

    @chart_type.setter
    def chart_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "chart_type", value)

    @property
    @pulumi.getter
    def dataset(self) -> pulumi.Input['ResourceGroupCostManagementViewDatasetArgs']:
        """
        A `dataset` block as defined below.
        """
        return pulumi.get(self, "dataset")

    @dataset.setter
    def dataset(self, value: pulumi.Input['ResourceGroupCostManagementViewDatasetArgs']):
        pulumi.set(self, "dataset", value)

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> pulumi.Input[str]:
        """
        User visible input name of the Cost Management View.
        """
        return pulumi.get(self, "display_name")

    @display_name.setter
    def display_name(self, value: pulumi.Input[str]):
        pulumi.set(self, "display_name", value)

    @property
    @pulumi.getter(name="reportType")
    def report_type(self) -> pulumi.Input[str]:
        """
        The type of the report. The only possible value is `Usage`.
        """
        return pulumi.get(self, "report_type")

    @report_type.setter
    def report_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "report_type", value)

    @property
    @pulumi.getter(name="resourceGroupId")
    def resource_group_id(self) -> pulumi.Input[str]:
        """
        The ID of the Resource Group this View is scoped to. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "resource_group_id")

    @resource_group_id.setter
    def resource_group_id(self, value: pulumi.Input[str]):
        pulumi.set(self, "resource_group_id", value)

    @property
    @pulumi.getter
    def timeframe(self) -> pulumi.Input[str]:
        """
        The time frame for pulling data for the report. Possible values are `Custom`, `MonthToDate`, `WeekToDate` and `YearToDate`.
        """
        return pulumi.get(self, "timeframe")

    @timeframe.setter
    def timeframe(self, value: pulumi.Input[str]):
        pulumi.set(self, "timeframe", value)

    @property
    @pulumi.getter
    def kpis(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewKpiArgs']]]]:
        """
        One or more `kpi` blocks as defined below, to show in Cost Analysis UI.
        """
        return pulumi.get(self, "kpis")

    @kpis.setter
    def kpis(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewKpiArgs']]]]):
        pulumi.set(self, "kpis", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name which should be used for this Cost Management View for a Resource Group. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def pivots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewPivotArgs']]]]:
        """
        One or more `pivot` blocks as defined below, containing the configuration of 3 sub-views in the Cost Analysis UI. Non table views should have three pivots.
        """
        return pulumi.get(self, "pivots")

    @pivots.setter
    def pivots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewPivotArgs']]]]):
        pulumi.set(self, "pivots", value)


@pulumi.input_type
class _ResourceGroupCostManagementViewState:
    def __init__(__self__, *,
                 accumulated: Optional[pulumi.Input[bool]] = None,
                 chart_type: Optional[pulumi.Input[str]] = None,
                 dataset: Optional[pulumi.Input['ResourceGroupCostManagementViewDatasetArgs']] = None,
                 display_name: Optional[pulumi.Input[str]] = None,
                 kpis: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewKpiArgs']]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 pivots: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewPivotArgs']]]] = None,
                 report_type: Optional[pulumi.Input[str]] = None,
                 resource_group_id: Optional[pulumi.Input[str]] = None,
                 timeframe: Optional[pulumi.Input[str]] = None):
        """
        Input properties used for looking up and filtering ResourceGroupCostManagementView resources.
        :param pulumi.Input[bool] accumulated: Whether the costs data in the Cost Management View are accumulated over time. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[str] chart_type: Chart type of the main view in Cost Analysis. Possible values are `Area`, `GroupedColumn`, `Line`, `StackedColumn` and `Table`.
        :param pulumi.Input['ResourceGroupCostManagementViewDatasetArgs'] dataset: A `dataset` block as defined below.
        :param pulumi.Input[str] display_name: User visible input name of the Cost Management View.
        :param pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewKpiArgs']]] kpis: One or more `kpi` blocks as defined below, to show in Cost Analysis UI.
        :param pulumi.Input[str] name: The name which should be used for this Cost Management View for a Resource Group. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewPivotArgs']]] pivots: One or more `pivot` blocks as defined below, containing the configuration of 3 sub-views in the Cost Analysis UI. Non table views should have three pivots.
        :param pulumi.Input[str] report_type: The type of the report. The only possible value is `Usage`.
        :param pulumi.Input[str] resource_group_id: The ID of the Resource Group this View is scoped to. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[str] timeframe: The time frame for pulling data for the report. Possible values are `Custom`, `MonthToDate`, `WeekToDate` and `YearToDate`.
        """
        if accumulated is not None:
            pulumi.set(__self__, "accumulated", accumulated)
        if chart_type is not None:
            pulumi.set(__self__, "chart_type", chart_type)
        if dataset is not None:
            pulumi.set(__self__, "dataset", dataset)
        if display_name is not None:
            pulumi.set(__self__, "display_name", display_name)
        if kpis is not None:
            pulumi.set(__self__, "kpis", kpis)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if pivots is not None:
            pulumi.set(__self__, "pivots", pivots)
        if report_type is not None:
            pulumi.set(__self__, "report_type", report_type)
        if resource_group_id is not None:
            pulumi.set(__self__, "resource_group_id", resource_group_id)
        if timeframe is not None:
            pulumi.set(__self__, "timeframe", timeframe)

    @property
    @pulumi.getter
    def accumulated(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether the costs data in the Cost Management View are accumulated over time. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "accumulated")

    @accumulated.setter
    def accumulated(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "accumulated", value)

    @property
    @pulumi.getter(name="chartType")
    def chart_type(self) -> Optional[pulumi.Input[str]]:
        """
        Chart type of the main view in Cost Analysis. Possible values are `Area`, `GroupedColumn`, `Line`, `StackedColumn` and `Table`.
        """
        return pulumi.get(self, "chart_type")

    @chart_type.setter
    def chart_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "chart_type", value)

    @property
    @pulumi.getter
    def dataset(self) -> Optional[pulumi.Input['ResourceGroupCostManagementViewDatasetArgs']]:
        """
        A `dataset` block as defined below.
        """
        return pulumi.get(self, "dataset")

    @dataset.setter
    def dataset(self, value: Optional[pulumi.Input['ResourceGroupCostManagementViewDatasetArgs']]):
        pulumi.set(self, "dataset", value)

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> Optional[pulumi.Input[str]]:
        """
        User visible input name of the Cost Management View.
        """
        return pulumi.get(self, "display_name")

    @display_name.setter
    def display_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "display_name", value)

    @property
    @pulumi.getter
    def kpis(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewKpiArgs']]]]:
        """
        One or more `kpi` blocks as defined below, to show in Cost Analysis UI.
        """
        return pulumi.get(self, "kpis")

    @kpis.setter
    def kpis(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewKpiArgs']]]]):
        pulumi.set(self, "kpis", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name which should be used for this Cost Management View for a Resource Group. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def pivots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewPivotArgs']]]]:
        """
        One or more `pivot` blocks as defined below, containing the configuration of 3 sub-views in the Cost Analysis UI. Non table views should have three pivots.
        """
        return pulumi.get(self, "pivots")

    @pivots.setter
    def pivots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResourceGroupCostManagementViewPivotArgs']]]]):
        pulumi.set(self, "pivots", value)

    @property
    @pulumi.getter(name="reportType")
    def report_type(self) -> Optional[pulumi.Input[str]]:
        """
        The type of the report. The only possible value is `Usage`.
        """
        return pulumi.get(self, "report_type")

    @report_type.setter
    def report_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "report_type", value)

    @property
    @pulumi.getter(name="resourceGroupId")
    def resource_group_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the Resource Group this View is scoped to. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "resource_group_id")

    @resource_group_id.setter
    def resource_group_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "resource_group_id", value)

    @property
    @pulumi.getter
    def timeframe(self) -> Optional[pulumi.Input[str]]:
        """
        The time frame for pulling data for the report. Possible values are `Custom`, `MonthToDate`, `WeekToDate` and `YearToDate`.
        """
        return pulumi.get(self, "timeframe")

    @timeframe.setter
    def timeframe(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "timeframe", value)


class ResourceGroupCostManagementView(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 accumulated: Optional[pulumi.Input[bool]] = None,
                 chart_type: Optional[pulumi.Input[str]] = None,
                 dataset: Optional[pulumi.Input[Union['ResourceGroupCostManagementViewDatasetArgs', 'ResourceGroupCostManagementViewDatasetArgsDict']]] = None,
                 display_name: Optional[pulumi.Input[str]] = None,
                 kpis: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewKpiArgs', 'ResourceGroupCostManagementViewKpiArgsDict']]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 pivots: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewPivotArgs', 'ResourceGroupCostManagementViewPivotArgsDict']]]]] = None,
                 report_type: Optional[pulumi.Input[str]] = None,
                 resource_group_id: Optional[pulumi.Input[str]] = None,
                 timeframe: Optional[pulumi.Input[str]] = None,
                 __props__=None):
        """
        Manages an Azure Cost Management View for a Resource Group.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_azure as azure

        example = azure.core.ResourceGroup("example",
            name="example-resources",
            location="West Europe")
        example_resource_group_cost_management_view = azure.core.ResourceGroupCostManagementView("example",
            name="example",
            display_name="Cost View per Month",
            chart_type="StackedColumn",
            accumulated=False,
            resource_group_id=example.id,
            report_type="Usage",
            timeframe="MonthToDate",
            dataset={
                "granularity": "Monthly",
                "aggregations": [{
                    "name": "totalCost",
                    "column_name": "Cost",
                }],
            })
        ```

        ## Import

        Cost Management View for a Resource Groups can be imported using the `resource id`, e.g.

        ```sh
        $ pulumi import azure:core/resourceGroupCostManagementView:ResourceGroupCostManagementView example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.CostManagement/views/costmanagementview
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[bool] accumulated: Whether the costs data in the Cost Management View are accumulated over time. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[str] chart_type: Chart type of the main view in Cost Analysis. Possible values are `Area`, `GroupedColumn`, `Line`, `StackedColumn` and `Table`.
        :param pulumi.Input[Union['ResourceGroupCostManagementViewDatasetArgs', 'ResourceGroupCostManagementViewDatasetArgsDict']] dataset: A `dataset` block as defined below.
        :param pulumi.Input[str] display_name: User visible input name of the Cost Management View.
        :param pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewKpiArgs', 'ResourceGroupCostManagementViewKpiArgsDict']]]] kpis: One or more `kpi` blocks as defined below, to show in Cost Analysis UI.
        :param pulumi.Input[str] name: The name which should be used for this Cost Management View for a Resource Group. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewPivotArgs', 'ResourceGroupCostManagementViewPivotArgsDict']]]] pivots: One or more `pivot` blocks as defined below, containing the configuration of 3 sub-views in the Cost Analysis UI. Non table views should have three pivots.
        :param pulumi.Input[str] report_type: The type of the report. The only possible value is `Usage`.
        :param pulumi.Input[str] resource_group_id: The ID of the Resource Group this View is scoped to. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[str] timeframe: The time frame for pulling data for the report. Possible values are `Custom`, `MonthToDate`, `WeekToDate` and `YearToDate`.
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: ResourceGroupCostManagementViewArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Manages an Azure Cost Management View for a Resource Group.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_azure as azure

        example = azure.core.ResourceGroup("example",
            name="example-resources",
            location="West Europe")
        example_resource_group_cost_management_view = azure.core.ResourceGroupCostManagementView("example",
            name="example",
            display_name="Cost View per Month",
            chart_type="StackedColumn",
            accumulated=False,
            resource_group_id=example.id,
            report_type="Usage",
            timeframe="MonthToDate",
            dataset={
                "granularity": "Monthly",
                "aggregations": [{
                    "name": "totalCost",
                    "column_name": "Cost",
                }],
            })
        ```

        ## Import

        Cost Management View for a Resource Groups can be imported using the `resource id`, e.g.

        ```sh
        $ pulumi import azure:core/resourceGroupCostManagementView:ResourceGroupCostManagementView example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.CostManagement/views/costmanagementview
        ```

        :param str resource_name: The name of the resource.
        :param ResourceGroupCostManagementViewArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(ResourceGroupCostManagementViewArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 accumulated: Optional[pulumi.Input[bool]] = None,
                 chart_type: Optional[pulumi.Input[str]] = None,
                 dataset: Optional[pulumi.Input[Union['ResourceGroupCostManagementViewDatasetArgs', 'ResourceGroupCostManagementViewDatasetArgsDict']]] = None,
                 display_name: Optional[pulumi.Input[str]] = None,
                 kpis: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewKpiArgs', 'ResourceGroupCostManagementViewKpiArgsDict']]]]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 pivots: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewPivotArgs', 'ResourceGroupCostManagementViewPivotArgsDict']]]]] = None,
                 report_type: Optional[pulumi.Input[str]] = None,
                 resource_group_id: Optional[pulumi.Input[str]] = None,
                 timeframe: Optional[pulumi.Input[str]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = ResourceGroupCostManagementViewArgs.__new__(ResourceGroupCostManagementViewArgs)

            if accumulated is None and not opts.urn:
                raise TypeError("Missing required property 'accumulated'")
            __props__.__dict__["accumulated"] = accumulated
            if chart_type is None and not opts.urn:
                raise TypeError("Missing required property 'chart_type'")
            __props__.__dict__["chart_type"] = chart_type
            if dataset is None and not opts.urn:
                raise TypeError("Missing required property 'dataset'")
            __props__.__dict__["dataset"] = dataset
            if display_name is None and not opts.urn:
                raise TypeError("Missing required property 'display_name'")
            __props__.__dict__["display_name"] = display_name
            __props__.__dict__["kpis"] = kpis
            __props__.__dict__["name"] = name
            __props__.__dict__["pivots"] = pivots
            if report_type is None and not opts.urn:
                raise TypeError("Missing required property 'report_type'")
            __props__.__dict__["report_type"] = report_type
            if resource_group_id is None and not opts.urn:
                raise TypeError("Missing required property 'resource_group_id'")
            __props__.__dict__["resource_group_id"] = resource_group_id
            if timeframe is None and not opts.urn:
                raise TypeError("Missing required property 'timeframe'")
            __props__.__dict__["timeframe"] = timeframe
        super(ResourceGroupCostManagementView, __self__).__init__(
            'azure:core/resourceGroupCostManagementView:ResourceGroupCostManagementView',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            accumulated: Optional[pulumi.Input[bool]] = None,
            chart_type: Optional[pulumi.Input[str]] = None,
            dataset: Optional[pulumi.Input[Union['ResourceGroupCostManagementViewDatasetArgs', 'ResourceGroupCostManagementViewDatasetArgsDict']]] = None,
            display_name: Optional[pulumi.Input[str]] = None,
            kpis: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewKpiArgs', 'ResourceGroupCostManagementViewKpiArgsDict']]]]] = None,
            name: Optional[pulumi.Input[str]] = None,
            pivots: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewPivotArgs', 'ResourceGroupCostManagementViewPivotArgsDict']]]]] = None,
            report_type: Optional[pulumi.Input[str]] = None,
            resource_group_id: Optional[pulumi.Input[str]] = None,
            timeframe: Optional[pulumi.Input[str]] = None) -> 'ResourceGroupCostManagementView':
        """
        Get an existing ResourceGroupCostManagementView resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[bool] accumulated: Whether the costs data in the Cost Management View are accumulated over time. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[str] chart_type: Chart type of the main view in Cost Analysis. Possible values are `Area`, `GroupedColumn`, `Line`, `StackedColumn` and `Table`.
        :param pulumi.Input[Union['ResourceGroupCostManagementViewDatasetArgs', 'ResourceGroupCostManagementViewDatasetArgsDict']] dataset: A `dataset` block as defined below.
        :param pulumi.Input[str] display_name: User visible input name of the Cost Management View.
        :param pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewKpiArgs', 'ResourceGroupCostManagementViewKpiArgsDict']]]] kpis: One or more `kpi` blocks as defined below, to show in Cost Analysis UI.
        :param pulumi.Input[str] name: The name which should be used for this Cost Management View for a Resource Group. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[Sequence[pulumi.Input[Union['ResourceGroupCostManagementViewPivotArgs', 'ResourceGroupCostManagementViewPivotArgsDict']]]] pivots: One or more `pivot` blocks as defined below, containing the configuration of 3 sub-views in the Cost Analysis UI. Non table views should have three pivots.
        :param pulumi.Input[str] report_type: The type of the report. The only possible value is `Usage`.
        :param pulumi.Input[str] resource_group_id: The ID of the Resource Group this View is scoped to. Changing this forces a new Cost Management View for a Resource Group to be created.
        :param pulumi.Input[str] timeframe: The time frame for pulling data for the report. Possible values are `Custom`, `MonthToDate`, `WeekToDate` and `YearToDate`.
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _ResourceGroupCostManagementViewState.__new__(_ResourceGroupCostManagementViewState)

        __props__.__dict__["accumulated"] = accumulated
        __props__.__dict__["chart_type"] = chart_type
        __props__.__dict__["dataset"] = dataset
        __props__.__dict__["display_name"] = display_name
        __props__.__dict__["kpis"] = kpis
        __props__.__dict__["name"] = name
        __props__.__dict__["pivots"] = pivots
        __props__.__dict__["report_type"] = report_type
        __props__.__dict__["resource_group_id"] = resource_group_id
        __props__.__dict__["timeframe"] = timeframe
        return ResourceGroupCostManagementView(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter
    def accumulated(self) -> pulumi.Output[bool]:
        """
        Whether the costs data in the Cost Management View are accumulated over time. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "accumulated")

    @property
    @pulumi.getter(name="chartType")
    def chart_type(self) -> pulumi.Output[str]:
        """
        Chart type of the main view in Cost Analysis. Possible values are `Area`, `GroupedColumn`, `Line`, `StackedColumn` and `Table`.
        """
        return pulumi.get(self, "chart_type")

    @property
    @pulumi.getter
    def dataset(self) -> pulumi.Output['outputs.ResourceGroupCostManagementViewDataset']:
        """
        A `dataset` block as defined below.
        """
        return pulumi.get(self, "dataset")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> pulumi.Output[str]:
        """
        User visible input name of the Cost Management View.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter
    def kpis(self) -> pulumi.Output[Optional[Sequence['outputs.ResourceGroupCostManagementViewKpi']]]:
        """
        One or more `kpi` blocks as defined below, to show in Cost Analysis UI.
        """
        return pulumi.get(self, "kpis")

    @property
    @pulumi.getter
    def name(self) -> pulumi.Output[str]:
        """
        The name which should be used for this Cost Management View for a Resource Group. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def pivots(self) -> pulumi.Output[Optional[Sequence['outputs.ResourceGroupCostManagementViewPivot']]]:
        """
        One or more `pivot` blocks as defined below, containing the configuration of 3 sub-views in the Cost Analysis UI. Non table views should have three pivots.
        """
        return pulumi.get(self, "pivots")

    @property
    @pulumi.getter(name="reportType")
    def report_type(self) -> pulumi.Output[str]:
        """
        The type of the report. The only possible value is `Usage`.
        """
        return pulumi.get(self, "report_type")

    @property
    @pulumi.getter(name="resourceGroupId")
    def resource_group_id(self) -> pulumi.Output[str]:
        """
        The ID of the Resource Group this View is scoped to. Changing this forces a new Cost Management View for a Resource Group to be created.
        """
        return pulumi.get(self, "resource_group_id")

    @property
    @pulumi.getter
    def timeframe(self) -> pulumi.Output[str]:
        """
        The time frame for pulling data for the report. Possible values are `Custom`, `MonthToDate`, `WeekToDate` and `YearToDate`.
        """
        return pulumi.get(self, "timeframe")

