# 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__ = [
    'AlertChannelConfig',
    'AlertConditionTerm',
    'AlertMutingRuleCondition',
    'AlertMutingRuleConditionCondition',
    'AlertMutingRuleSchedule',
    'EntityTagsTag',
    'InfraAlertConditionCritical',
    'InfraAlertConditionWarning',
    'NotificationChannelProperty',
    'NotificationDestinationAuthBasic',
    'NotificationDestinationAuthToken',
    'NotificationDestinationProperty',
    'NrqlAlertConditionCritical',
    'NrqlAlertConditionNrql',
    'NrqlAlertConditionTerm',
    'NrqlAlertConditionWarning',
    'ObfuscationRuleAction',
    'OneDashboardPage',
    'OneDashboardPageWidgetArea',
    'OneDashboardPageWidgetAreaColor',
    'OneDashboardPageWidgetAreaColorSeriesOverride',
    'OneDashboardPageWidgetAreaNrqlQuery',
    'OneDashboardPageWidgetAreaNullValue',
    'OneDashboardPageWidgetAreaNullValueSeriesOverride',
    'OneDashboardPageWidgetAreaUnit',
    'OneDashboardPageWidgetAreaUnitSeriesOverride',
    'OneDashboardPageWidgetBar',
    'OneDashboardPageWidgetBarColor',
    'OneDashboardPageWidgetBarColorSeriesOverride',
    'OneDashboardPageWidgetBarNrqlQuery',
    'OneDashboardPageWidgetBarNullValue',
    'OneDashboardPageWidgetBarNullValueSeriesOverride',
    'OneDashboardPageWidgetBarUnit',
    'OneDashboardPageWidgetBarUnitSeriesOverride',
    'OneDashboardPageWidgetBillboard',
    'OneDashboardPageWidgetBillboardColor',
    'OneDashboardPageWidgetBillboardColorSeriesOverride',
    'OneDashboardPageWidgetBillboardNrqlQuery',
    'OneDashboardPageWidgetBillboardNullValue',
    'OneDashboardPageWidgetBillboardNullValueSeriesOverride',
    'OneDashboardPageWidgetBillboardUnit',
    'OneDashboardPageWidgetBillboardUnitSeriesOverride',
    'OneDashboardPageWidgetBullet',
    'OneDashboardPageWidgetBulletColor',
    'OneDashboardPageWidgetBulletColorSeriesOverride',
    'OneDashboardPageWidgetBulletNrqlQuery',
    'OneDashboardPageWidgetBulletNullValue',
    'OneDashboardPageWidgetBulletNullValueSeriesOverride',
    'OneDashboardPageWidgetBulletUnit',
    'OneDashboardPageWidgetBulletUnitSeriesOverride',
    'OneDashboardPageWidgetFunnel',
    'OneDashboardPageWidgetFunnelColor',
    'OneDashboardPageWidgetFunnelColorSeriesOverride',
    'OneDashboardPageWidgetFunnelNrqlQuery',
    'OneDashboardPageWidgetFunnelNullValue',
    'OneDashboardPageWidgetFunnelNullValueSeriesOverride',
    'OneDashboardPageWidgetFunnelUnit',
    'OneDashboardPageWidgetFunnelUnitSeriesOverride',
    'OneDashboardPageWidgetHeatmap',
    'OneDashboardPageWidgetHeatmapColor',
    'OneDashboardPageWidgetHeatmapColorSeriesOverride',
    'OneDashboardPageWidgetHeatmapNrqlQuery',
    'OneDashboardPageWidgetHeatmapNullValue',
    'OneDashboardPageWidgetHeatmapNullValueSeriesOverride',
    'OneDashboardPageWidgetHeatmapUnit',
    'OneDashboardPageWidgetHeatmapUnitSeriesOverride',
    'OneDashboardPageWidgetHistogram',
    'OneDashboardPageWidgetHistogramColor',
    'OneDashboardPageWidgetHistogramColorSeriesOverride',
    'OneDashboardPageWidgetHistogramNrqlQuery',
    'OneDashboardPageWidgetHistogramNullValue',
    'OneDashboardPageWidgetHistogramNullValueSeriesOverride',
    'OneDashboardPageWidgetHistogramUnit',
    'OneDashboardPageWidgetHistogramUnitSeriesOverride',
    'OneDashboardPageWidgetJson',
    'OneDashboardPageWidgetJsonColor',
    'OneDashboardPageWidgetJsonColorSeriesOverride',
    'OneDashboardPageWidgetJsonNrqlQuery',
    'OneDashboardPageWidgetJsonNullValue',
    'OneDashboardPageWidgetJsonNullValueSeriesOverride',
    'OneDashboardPageWidgetJsonUnit',
    'OneDashboardPageWidgetJsonUnitSeriesOverride',
    'OneDashboardPageWidgetLine',
    'OneDashboardPageWidgetLineColor',
    'OneDashboardPageWidgetLineColorSeriesOverride',
    'OneDashboardPageWidgetLineNrqlQuery',
    'OneDashboardPageWidgetLineNullValue',
    'OneDashboardPageWidgetLineNullValueSeriesOverride',
    'OneDashboardPageWidgetLineUnit',
    'OneDashboardPageWidgetLineUnitSeriesOverride',
    'OneDashboardPageWidgetLogTable',
    'OneDashboardPageWidgetLogTableColor',
    'OneDashboardPageWidgetLogTableColorSeriesOverride',
    'OneDashboardPageWidgetLogTableNrqlQuery',
    'OneDashboardPageWidgetLogTableNullValue',
    'OneDashboardPageWidgetLogTableNullValueSeriesOverride',
    'OneDashboardPageWidgetLogTableUnit',
    'OneDashboardPageWidgetLogTableUnitSeriesOverride',
    'OneDashboardPageWidgetMarkdown',
    'OneDashboardPageWidgetMarkdownColor',
    'OneDashboardPageWidgetMarkdownColorSeriesOverride',
    'OneDashboardPageWidgetMarkdownNullValue',
    'OneDashboardPageWidgetMarkdownNullValueSeriesOverride',
    'OneDashboardPageWidgetMarkdownUnit',
    'OneDashboardPageWidgetMarkdownUnitSeriesOverride',
    'OneDashboardPageWidgetPy',
    'OneDashboardPageWidgetPyColor',
    'OneDashboardPageWidgetPyColorSeriesOverride',
    'OneDashboardPageWidgetPyNrqlQuery',
    'OneDashboardPageWidgetPyNullValue',
    'OneDashboardPageWidgetPyNullValueSeriesOverride',
    'OneDashboardPageWidgetPyUnit',
    'OneDashboardPageWidgetPyUnitSeriesOverride',
    'OneDashboardPageWidgetStackedBar',
    'OneDashboardPageWidgetStackedBarColor',
    'OneDashboardPageWidgetStackedBarColorSeriesOverride',
    'OneDashboardPageWidgetStackedBarNrqlQuery',
    'OneDashboardPageWidgetStackedBarNullValue',
    'OneDashboardPageWidgetStackedBarNullValueSeriesOverride',
    'OneDashboardPageWidgetStackedBarUnit',
    'OneDashboardPageWidgetStackedBarUnitSeriesOverride',
    'OneDashboardPageWidgetTable',
    'OneDashboardPageWidgetTableColor',
    'OneDashboardPageWidgetTableColorSeriesOverride',
    'OneDashboardPageWidgetTableNrqlQuery',
    'OneDashboardPageWidgetTableNullValue',
    'OneDashboardPageWidgetTableNullValueSeriesOverride',
    'OneDashboardPageWidgetTableUnit',
    'OneDashboardPageWidgetTableUnitSeriesOverride',
    'OneDashboardRawPage',
    'OneDashboardRawPageWidget',
    'OneDashboardVariable',
    'OneDashboardVariableItem',
    'OneDashboardVariableNrqlQuery',
    'ServiceLevelEvents',
    'ServiceLevelEventsBadEvents',
    'ServiceLevelEventsBadEventsSelect',
    'ServiceLevelEventsGoodEvents',
    'ServiceLevelEventsGoodEventsSelect',
    'ServiceLevelEventsValidEvents',
    'ServiceLevelEventsValidEventsSelect',
    'ServiceLevelObjective',
    'ServiceLevelObjectiveTimeWindow',
    'ServiceLevelObjectiveTimeWindowRolling',
    'WorkflowDestination',
    'WorkflowEnrichments',
    'WorkflowEnrichmentsNrql',
    'WorkflowEnrichmentsNrqlConfiguration',
    'WorkflowIssuesFilter',
    'WorkflowIssuesFilterPredicate',
    'GetAlertChannelConfigResult',
    'GetEntityTagResult',
    'GetNotificationDestinationPropertyResult',
    'GetTestGrokPatternTestGrokResult',
    'GetTestGrokPatternTestGrokAttributeResult',
]

@pulumi.output_type
class AlertChannelConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "apiKey":
            suggest = "api_key"
        elif key == "authPassword":
            suggest = "auth_password"
        elif key == "authType":
            suggest = "auth_type"
        elif key == "authUsername":
            suggest = "auth_username"
        elif key == "baseUrl":
            suggest = "base_url"
        elif key == "headersString":
            suggest = "headers_string"
        elif key == "includeJsonAttachment":
            suggest = "include_json_attachment"
        elif key == "payloadString":
            suggest = "payload_string"
        elif key == "payloadType":
            suggest = "payload_type"
        elif key == "routeKey":
            suggest = "route_key"
        elif key == "serviceKey":
            suggest = "service_key"
        elif key == "userId":
            suggest = "user_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AlertChannelConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AlertChannelConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AlertChannelConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 api_key: Optional[str] = None,
                 auth_password: Optional[str] = None,
                 auth_type: Optional[str] = None,
                 auth_username: Optional[str] = None,
                 base_url: Optional[str] = None,
                 channel: Optional[str] = None,
                 headers: Optional[Mapping[str, str]] = None,
                 headers_string: Optional[str] = None,
                 include_json_attachment: Optional[str] = None,
                 key: Optional[str] = None,
                 payload: Optional[Mapping[str, str]] = None,
                 payload_string: Optional[str] = None,
                 payload_type: Optional[str] = None,
                 recipients: Optional[str] = None,
                 region: Optional[str] = None,
                 route_key: Optional[str] = None,
                 service_key: Optional[str] = None,
                 tags: Optional[str] = None,
                 teams: Optional[str] = None,
                 url: Optional[str] = None,
                 user_id: Optional[str] = None):
        """
        :param str api_key: The API key for integrating with OpsGenie.
        :param str auth_password: Specifies an authentication password for use with a channel.  Supported by the `webhook` channel type.
        :param str auth_type: Specifies an authentication method for use with a channel.  Supported by the `webhook` channel type.  Only HTTP basic authentication is currently supported via the value `BASIC`.
        :param str auth_username: Specifies an authentication username for use with a channel.  Supported by the `webhook` channel type.
        :param str base_url: The base URL of the webhook destination.
        :param str channel: The Slack channel to send notifications to.
        :param Mapping[str, str] headers: A map of key/value pairs that represents extra HTTP headers to be sent along with the webhook payload.
        :param str headers_string: Use instead of `headers` if the desired payload is more complex than a list of key/value pairs (e.g. a set of headers that makes use of nested objects).  The value provided should be a valid JSON string with escaped double quotes. Conflicts with `headers`.
        :param str include_json_attachment: `true` or `false`. Flag for whether or not to attach a JSON document containing information about the associated alert to the email that is sent to recipients.
        :param str key: The key for integrating with VictorOps.
        :param Mapping[str, str] payload: A map of key/value pairs that represents the webhook payload.  Must provide `payload_type` if setting this argument.
        :param str payload_string: Use instead of `payload` if the desired payload is more complex than a list of key/value pairs (e.g. a payload that makes use of nested objects).  The value provided should be a valid JSON string with escaped double quotes. Conflicts with `payload`.
        :param str payload_type: Can either be `application/json` or `application/x-www-form-urlencoded`. The `payload_type` argument is _required_ if `payload` is set.
        :param str recipients: Comma delimited list of email addresses.
        :param str region: The data center region to store your data.  Valid values are `US` and `EU`.  Default is `US`.
        :param str route_key: The route key for integrating with VictorOps.
        :param str service_key: Specifies the service key for integrating with Pagerduty.
        :param str tags: A set of tags for targeting notifications. Multiple values are comma separated.
        :param str teams: A set of teams for targeting notifications. Multiple values are comma separated.
        :param str url: [Slack Webhook URL](https://slack.com/intl/en-es/help/articles/115005265063-Incoming-webhooks-for-Slack).
        """
        if api_key is not None:
            pulumi.set(__self__, "api_key", api_key)
        if auth_password is not None:
            pulumi.set(__self__, "auth_password", auth_password)
        if auth_type is not None:
            pulumi.set(__self__, "auth_type", auth_type)
        if auth_username is not None:
            pulumi.set(__self__, "auth_username", auth_username)
        if base_url is not None:
            pulumi.set(__self__, "base_url", base_url)
        if channel is not None:
            pulumi.set(__self__, "channel", channel)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if headers_string is not None:
            pulumi.set(__self__, "headers_string", headers_string)
        if include_json_attachment is not None:
            pulumi.set(__self__, "include_json_attachment", include_json_attachment)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if payload is not None:
            pulumi.set(__self__, "payload", payload)
        if payload_string is not None:
            pulumi.set(__self__, "payload_string", payload_string)
        if payload_type is not None:
            pulumi.set(__self__, "payload_type", payload_type)
        if recipients is not None:
            pulumi.set(__self__, "recipients", recipients)
        if region is not None:
            pulumi.set(__self__, "region", region)
        if route_key is not None:
            pulumi.set(__self__, "route_key", route_key)
        if service_key is not None:
            pulumi.set(__self__, "service_key", service_key)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if teams is not None:
            pulumi.set(__self__, "teams", teams)
        if url is not None:
            pulumi.set(__self__, "url", url)
        if user_id is not None:
            pulumi.set(__self__, "user_id", user_id)

    @property
    @pulumi.getter(name="apiKey")
    def api_key(self) -> Optional[str]:
        """
        The API key for integrating with OpsGenie.
        """
        return pulumi.get(self, "api_key")

    @property
    @pulumi.getter(name="authPassword")
    def auth_password(self) -> Optional[str]:
        """
        Specifies an authentication password for use with a channel.  Supported by the `webhook` channel type.
        """
        return pulumi.get(self, "auth_password")

    @property
    @pulumi.getter(name="authType")
    def auth_type(self) -> Optional[str]:
        """
        Specifies an authentication method for use with a channel.  Supported by the `webhook` channel type.  Only HTTP basic authentication is currently supported via the value `BASIC`.
        """
        return pulumi.get(self, "auth_type")

    @property
    @pulumi.getter(name="authUsername")
    def auth_username(self) -> Optional[str]:
        """
        Specifies an authentication username for use with a channel.  Supported by the `webhook` channel type.
        """
        return pulumi.get(self, "auth_username")

    @property
    @pulumi.getter(name="baseUrl")
    def base_url(self) -> Optional[str]:
        """
        The base URL of the webhook destination.
        """
        return pulumi.get(self, "base_url")

    @property
    @pulumi.getter
    def channel(self) -> Optional[str]:
        """
        The Slack channel to send notifications to.
        """
        return pulumi.get(self, "channel")

    @property
    @pulumi.getter
    def headers(self) -> Optional[Mapping[str, str]]:
        """
        A map of key/value pairs that represents extra HTTP headers to be sent along with the webhook payload.
        """
        return pulumi.get(self, "headers")

    @property
    @pulumi.getter(name="headersString")
    def headers_string(self) -> Optional[str]:
        """
        Use instead of `headers` if the desired payload is more complex than a list of key/value pairs (e.g. a set of headers that makes use of nested objects).  The value provided should be a valid JSON string with escaped double quotes. Conflicts with `headers`.
        """
        return pulumi.get(self, "headers_string")

    @property
    @pulumi.getter(name="includeJsonAttachment")
    def include_json_attachment(self) -> Optional[str]:
        """
        `true` or `false`. Flag for whether or not to attach a JSON document containing information about the associated alert to the email that is sent to recipients.
        """
        return pulumi.get(self, "include_json_attachment")

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

    @property
    @pulumi.getter
    def payload(self) -> Optional[Mapping[str, str]]:
        """
        A map of key/value pairs that represents the webhook payload.  Must provide `payload_type` if setting this argument.
        """
        return pulumi.get(self, "payload")

    @property
    @pulumi.getter(name="payloadString")
    def payload_string(self) -> Optional[str]:
        """
        Use instead of `payload` if the desired payload is more complex than a list of key/value pairs (e.g. a payload that makes use of nested objects).  The value provided should be a valid JSON string with escaped double quotes. Conflicts with `payload`.
        """
        return pulumi.get(self, "payload_string")

    @property
    @pulumi.getter(name="payloadType")
    def payload_type(self) -> Optional[str]:
        """
        Can either be `application/json` or `application/x-www-form-urlencoded`. The `payload_type` argument is _required_ if `payload` is set.
        """
        return pulumi.get(self, "payload_type")

    @property
    @pulumi.getter
    def recipients(self) -> Optional[str]:
        """
        Comma delimited list of email addresses.
        """
        return pulumi.get(self, "recipients")

    @property
    @pulumi.getter
    def region(self) -> Optional[str]:
        """
        The data center region to store your data.  Valid values are `US` and `EU`.  Default is `US`.
        """
        return pulumi.get(self, "region")

    @property
    @pulumi.getter(name="routeKey")
    def route_key(self) -> Optional[str]:
        """
        The route key for integrating with VictorOps.
        """
        return pulumi.get(self, "route_key")

    @property
    @pulumi.getter(name="serviceKey")
    def service_key(self) -> Optional[str]:
        """
        Specifies the service key for integrating with Pagerduty.
        """
        return pulumi.get(self, "service_key")

    @property
    @pulumi.getter
    def tags(self) -> Optional[str]:
        """
        A set of tags for targeting notifications. Multiple values are comma separated.
        """
        return pulumi.get(self, "tags")

    @property
    @pulumi.getter
    def teams(self) -> Optional[str]:
        """
        A set of teams for targeting notifications. Multiple values are comma separated.
        """
        return pulumi.get(self, "teams")

    @property
    @pulumi.getter
    def url(self) -> Optional[str]:
        """
        [Slack Webhook URL](https://slack.com/intl/en-es/help/articles/115005265063-Incoming-webhooks-for-Slack).
        """
        return pulumi.get(self, "url")

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


@pulumi.output_type
class AlertConditionTerm(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "timeFunction":
            suggest = "time_function"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AlertConditionTerm. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AlertConditionTerm.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AlertConditionTerm.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 duration: int,
                 threshold: float,
                 time_function: str,
                 operator: Optional[str] = None,
                 priority: Optional[str] = None):
        pulumi.set(__self__, "duration", duration)
        pulumi.set(__self__, "threshold", threshold)
        pulumi.set(__self__, "time_function", time_function)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)

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

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

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

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

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


@pulumi.output_type
class AlertMutingRuleCondition(dict):
    def __init__(__self__, *,
                 conditions: Sequence['outputs.AlertMutingRuleConditionCondition'],
                 operator: str):
        """
        :param Sequence['AlertMutingRuleConditionConditionArgs'] conditions: The individual MutingRuleConditions within the group. See Nested conditions blocks below for details.
        :param str operator: The operator used to combine all the MutingRuleConditions within the group. Valid values are `AND`, `OR`.
        """
        pulumi.set(__self__, "conditions", conditions)
        pulumi.set(__self__, "operator", operator)

    @property
    @pulumi.getter
    def conditions(self) -> Sequence['outputs.AlertMutingRuleConditionCondition']:
        """
        The individual MutingRuleConditions within the group. See Nested conditions blocks below for details.
        """
        return pulumi.get(self, "conditions")

    @property
    @pulumi.getter
    def operator(self) -> str:
        """
        The operator used to combine all the MutingRuleConditions within the group. Valid values are `AND`, `OR`.
        """
        return pulumi.get(self, "operator")


@pulumi.output_type
class AlertMutingRuleConditionCondition(dict):
    def __init__(__self__, *,
                 attribute: str,
                 operator: str,
                 values: Sequence[str]):
        """
        :param str attribute: The attribute on an incident. Valid values are   `accountId`, `conditionId`, `conditionName`, `conditionRunbookUrl`, `conditionType`, `entity.guid`, `nrqlEventType`, `nrqlQuery`, `policyId`, `policyName`, `product`, `tags.<NAME>`, `targetId`, `targetName`
        :param str operator: The operator used to combine all the MutingRuleConditions within the group. Valid values are `AND`, `OR`.
        :param Sequence[str] values: The value(s) to compare against the attribute's value.
        """
        pulumi.set(__self__, "attribute", attribute)
        pulumi.set(__self__, "operator", operator)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def attribute(self) -> str:
        """
        The attribute on an incident. Valid values are   `accountId`, `conditionId`, `conditionName`, `conditionRunbookUrl`, `conditionType`, `entity.guid`, `nrqlEventType`, `nrqlQuery`, `policyId`, `policyName`, `product`, `tags.<NAME>`, `targetId`, `targetName`
        """
        return pulumi.get(self, "attribute")

    @property
    @pulumi.getter
    def operator(self) -> str:
        """
        The operator used to combine all the MutingRuleConditions within the group. Valid values are `AND`, `OR`.
        """
        return pulumi.get(self, "operator")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        """
        The value(s) to compare against the attribute's value.
        """
        return pulumi.get(self, "values")


@pulumi.output_type
class AlertMutingRuleSchedule(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "timeZone":
            suggest = "time_zone"
        elif key == "endRepeat":
            suggest = "end_repeat"
        elif key == "endTime":
            suggest = "end_time"
        elif key == "repeatCount":
            suggest = "repeat_count"
        elif key == "startTime":
            suggest = "start_time"
        elif key == "weeklyRepeatDays":
            suggest = "weekly_repeat_days"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AlertMutingRuleSchedule. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AlertMutingRuleSchedule.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AlertMutingRuleSchedule.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 time_zone: str,
                 end_repeat: Optional[str] = None,
                 end_time: Optional[str] = None,
                 repeat: Optional[str] = None,
                 repeat_count: Optional[int] = None,
                 start_time: Optional[str] = None,
                 weekly_repeat_days: Optional[Sequence[str]] = None):
        """
        :param str end_repeat: The datetime stamp when the muting rule schedule stops repeating. This is in local ISO 8601 format without an offset. Example: '2020-07-10T15:00:00'. Conflicts with `repeat_count`
        :param str end_time: The datetime stamp that represents when the muting rule ends. This is in local ISO 8601 format without an offset. Example: '2020-07-15T14:30:00'
        :param str repeat: The frequency the muting rule schedule repeats. If it does not repeat, omit this field. Options are DAILY, WEEKLY, MONTHLY
        :param int repeat_count: The number of times the muting rule schedule repeats. This includes the original schedule. For example, a repeatCount of 2 will recur one time. Conflicts with `end_repeat`
        :param str start_time: The datetime stamp that represents when the muting rule starts. This is in local ISO 8601 format without an offset. Example: '2020-07-08T14:30:00'
        :param Sequence[str] weekly_repeat_days: The day(s) of the week that a muting rule should repeat when the repeat field is set to 'WEEKLY'. Example: ['MONDAY', 'WEDNESDAY']
        """
        pulumi.set(__self__, "time_zone", time_zone)
        if end_repeat is not None:
            pulumi.set(__self__, "end_repeat", end_repeat)
        if end_time is not None:
            pulumi.set(__self__, "end_time", end_time)
        if repeat is not None:
            pulumi.set(__self__, "repeat", repeat)
        if repeat_count is not None:
            pulumi.set(__self__, "repeat_count", repeat_count)
        if start_time is not None:
            pulumi.set(__self__, "start_time", start_time)
        if weekly_repeat_days is not None:
            pulumi.set(__self__, "weekly_repeat_days", weekly_repeat_days)

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

    @property
    @pulumi.getter(name="endRepeat")
    def end_repeat(self) -> Optional[str]:
        """
        The datetime stamp when the muting rule schedule stops repeating. This is in local ISO 8601 format without an offset. Example: '2020-07-10T15:00:00'. Conflicts with `repeat_count`
        """
        return pulumi.get(self, "end_repeat")

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> Optional[str]:
        """
        The datetime stamp that represents when the muting rule ends. This is in local ISO 8601 format without an offset. Example: '2020-07-15T14:30:00'
        """
        return pulumi.get(self, "end_time")

    @property
    @pulumi.getter
    def repeat(self) -> Optional[str]:
        """
        The frequency the muting rule schedule repeats. If it does not repeat, omit this field. Options are DAILY, WEEKLY, MONTHLY
        """
        return pulumi.get(self, "repeat")

    @property
    @pulumi.getter(name="repeatCount")
    def repeat_count(self) -> Optional[int]:
        """
        The number of times the muting rule schedule repeats. This includes the original schedule. For example, a repeatCount of 2 will recur one time. Conflicts with `end_repeat`
        """
        return pulumi.get(self, "repeat_count")

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> Optional[str]:
        """
        The datetime stamp that represents when the muting rule starts. This is in local ISO 8601 format without an offset. Example: '2020-07-08T14:30:00'
        """
        return pulumi.get(self, "start_time")

    @property
    @pulumi.getter(name="weeklyRepeatDays")
    def weekly_repeat_days(self) -> Optional[Sequence[str]]:
        """
        The day(s) of the week that a muting rule should repeat when the repeat field is set to 'WEEKLY'. Example: ['MONDAY', 'WEDNESDAY']
        """
        return pulumi.get(self, "weekly_repeat_days")


@pulumi.output_type
class EntityTagsTag(dict):
    def __init__(__self__, *,
                 key: str,
                 values: Sequence[str]):
        """
        :param str key: The tag key.
        :param Sequence[str] values: The tag values.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "values", values)

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

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        """
        The tag values.
        """
        return pulumi.get(self, "values")


@pulumi.output_type
class InfraAlertConditionCritical(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "timeFunction":
            suggest = "time_function"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InfraAlertConditionCritical. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InfraAlertConditionCritical.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InfraAlertConditionCritical.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 duration: int,
                 time_function: Optional[str] = None,
                 value: Optional[float] = None):
        pulumi.set(__self__, "duration", duration)
        if time_function is not None:
            pulumi.set(__self__, "time_function", time_function)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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


@pulumi.output_type
class InfraAlertConditionWarning(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "timeFunction":
            suggest = "time_function"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InfraAlertConditionWarning. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InfraAlertConditionWarning.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InfraAlertConditionWarning.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 duration: int,
                 time_function: Optional[str] = None,
                 value: Optional[float] = None):
        pulumi.set(__self__, "duration", duration)
        if time_function is not None:
            pulumi.set(__self__, "time_function", time_function)
        if value is not None:
            pulumi.set(__self__, "value", value)

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

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

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


@pulumi.output_type
class NotificationChannelProperty(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "displayValue":
            suggest = "display_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NotificationChannelProperty. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NotificationChannelProperty.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NotificationChannelProperty.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 key: str,
                 value: str,
                 display_value: Optional[str] = None,
                 label: Optional[str] = None):
        """
        :param str key: The notification property key.
        :param str value: The notification property value.
        :param str display_value: The notification property display value.
        :param str label: The notification property label.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        if display_value is not None:
            pulumi.set(__self__, "display_value", display_value)
        if label is not None:
            pulumi.set(__self__, "label", label)

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

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

    @property
    @pulumi.getter(name="displayValue")
    def display_value(self) -> Optional[str]:
        """
        The notification property display value.
        """
        return pulumi.get(self, "display_value")

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


@pulumi.output_type
class NotificationDestinationAuthBasic(dict):
    def __init__(__self__, *,
                 password: str,
                 user: str):
        """
        :param str password: Specifies an authentication password for use with a destination.
        :param str user: The username of the basic auth.
        """
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "user", user)

    @property
    @pulumi.getter
    def password(self) -> str:
        """
        Specifies an authentication password for use with a destination.
        """
        return pulumi.get(self, "password")

    @property
    @pulumi.getter
    def user(self) -> str:
        """
        The username of the basic auth.
        """
        return pulumi.get(self, "user")


@pulumi.output_type
class NotificationDestinationAuthToken(dict):
    def __init__(__self__, *,
                 token: str,
                 prefix: Optional[str] = None):
        """
        :param str token: Specifies the token for integrating.
        :param str prefix: The prefix of the token auth.
        """
        pulumi.set(__self__, "token", token)
        if prefix is not None:
            pulumi.set(__self__, "prefix", prefix)

    @property
    @pulumi.getter
    def token(self) -> str:
        """
        Specifies the token for integrating.
        """
        return pulumi.get(self, "token")

    @property
    @pulumi.getter
    def prefix(self) -> Optional[str]:
        """
        The prefix of the token auth.
        """
        return pulumi.get(self, "prefix")


@pulumi.output_type
class NotificationDestinationProperty(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "displayValue":
            suggest = "display_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NotificationDestinationProperty. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NotificationDestinationProperty.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NotificationDestinationProperty.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 key: str,
                 value: str,
                 display_value: Optional[str] = None,
                 label: Optional[str] = None):
        """
        :param str key: The notification property key.
        :param str value: The notification property value.
        :param str display_value: The notification property display value.
        :param str label: The notification property label.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        if display_value is not None:
            pulumi.set(__self__, "display_value", display_value)
        if label is not None:
            pulumi.set(__self__, "label", label)

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

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

    @property
    @pulumi.getter(name="displayValue")
    def display_value(self) -> Optional[str]:
        """
        The notification property display value.
        """
        return pulumi.get(self, "display_value")

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


@pulumi.output_type
class NrqlAlertConditionCritical(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "thresholdDuration":
            suggest = "threshold_duration"
        elif key == "thresholdOccurrences":
            suggest = "threshold_occurrences"
        elif key == "timeFunction":
            suggest = "time_function"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NrqlAlertConditionCritical. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NrqlAlertConditionCritical.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NrqlAlertConditionCritical.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 threshold: float,
                 duration: Optional[int] = None,
                 operator: Optional[str] = None,
                 threshold_duration: Optional[int] = None,
                 threshold_occurrences: Optional[str] = None,
                 time_function: Optional[str] = None):
        pulumi.set(__self__, "threshold", threshold)
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if threshold_duration is not None:
            pulumi.set(__self__, "threshold_duration", threshold_duration)
        if threshold_occurrences is not None:
            pulumi.set(__self__, "threshold_occurrences", threshold_occurrences)
        if time_function is not None:
            pulumi.set(__self__, "time_function", time_function)

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

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

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

    @property
    @pulumi.getter(name="thresholdDuration")
    def threshold_duration(self) -> Optional[int]:
        return pulumi.get(self, "threshold_duration")

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

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


@pulumi.output_type
class NrqlAlertConditionNrql(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "evaluationOffset":
            suggest = "evaluation_offset"
        elif key == "sinceValue":
            suggest = "since_value"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NrqlAlertConditionNrql. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NrqlAlertConditionNrql.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NrqlAlertConditionNrql.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 evaluation_offset: Optional[int] = None,
                 since_value: Optional[str] = None):
        pulumi.set(__self__, "query", query)
        if evaluation_offset is not None:
            pulumi.set(__self__, "evaluation_offset", evaluation_offset)
        if since_value is not None:
            pulumi.set(__self__, "since_value", since_value)

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

    @property
    @pulumi.getter(name="evaluationOffset")
    def evaluation_offset(self) -> Optional[int]:
        return pulumi.get(self, "evaluation_offset")

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


@pulumi.output_type
class NrqlAlertConditionTerm(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "thresholdDuration":
            suggest = "threshold_duration"
        elif key == "thresholdOccurrences":
            suggest = "threshold_occurrences"
        elif key == "timeFunction":
            suggest = "time_function"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NrqlAlertConditionTerm. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NrqlAlertConditionTerm.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NrqlAlertConditionTerm.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 threshold: float,
                 duration: Optional[int] = None,
                 operator: Optional[str] = None,
                 priority: Optional[str] = None,
                 threshold_duration: Optional[int] = None,
                 threshold_occurrences: Optional[str] = None,
                 time_function: Optional[str] = None):
        pulumi.set(__self__, "threshold", threshold)
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if threshold_duration is not None:
            pulumi.set(__self__, "threshold_duration", threshold_duration)
        if threshold_occurrences is not None:
            pulumi.set(__self__, "threshold_occurrences", threshold_occurrences)
        if time_function is not None:
            pulumi.set(__self__, "time_function", time_function)

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

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

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

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

    @property
    @pulumi.getter(name="thresholdDuration")
    def threshold_duration(self) -> Optional[int]:
        return pulumi.get(self, "threshold_duration")

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

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


@pulumi.output_type
class NrqlAlertConditionWarning(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "thresholdDuration":
            suggest = "threshold_duration"
        elif key == "thresholdOccurrences":
            suggest = "threshold_occurrences"
        elif key == "timeFunction":
            suggest = "time_function"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in NrqlAlertConditionWarning. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        NrqlAlertConditionWarning.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        NrqlAlertConditionWarning.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 threshold: float,
                 duration: Optional[int] = None,
                 operator: Optional[str] = None,
                 threshold_duration: Optional[int] = None,
                 threshold_occurrences: Optional[str] = None,
                 time_function: Optional[str] = None):
        pulumi.set(__self__, "threshold", threshold)
        if duration is not None:
            pulumi.set(__self__, "duration", duration)
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if threshold_duration is not None:
            pulumi.set(__self__, "threshold_duration", threshold_duration)
        if threshold_occurrences is not None:
            pulumi.set(__self__, "threshold_occurrences", threshold_occurrences)
        if time_function is not None:
            pulumi.set(__self__, "time_function", time_function)

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

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

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

    @property
    @pulumi.getter(name="thresholdDuration")
    def threshold_duration(self) -> Optional[int]:
        return pulumi.get(self, "threshold_duration")

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

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


@pulumi.output_type
class ObfuscationRuleAction(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "expressionId":
            suggest = "expression_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ObfuscationRuleAction. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ObfuscationRuleAction.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ObfuscationRuleAction.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 attributes: Sequence[str],
                 expression_id: str,
                 method: str):
        """
        :param Sequence[str] attributes: Attribute names for action. An empty list applies the action to all the attributes.
        :param str expression_id: Expression Id for action.
        :param str method: Obfuscation method to use. Methods for replacing obfuscated values are `HASH_SHA256` and `MASK`.
        """
        pulumi.set(__self__, "attributes", attributes)
        pulumi.set(__self__, "expression_id", expression_id)
        pulumi.set(__self__, "method", method)

    @property
    @pulumi.getter
    def attributes(self) -> Sequence[str]:
        """
        Attribute names for action. An empty list applies the action to all the attributes.
        """
        return pulumi.get(self, "attributes")

    @property
    @pulumi.getter(name="expressionId")
    def expression_id(self) -> str:
        """
        Expression Id for action.
        """
        return pulumi.get(self, "expression_id")

    @property
    @pulumi.getter
    def method(self) -> str:
        """
        Obfuscation method to use. Methods for replacing obfuscated values are `HASH_SHA256` and `MASK`.
        """
        return pulumi.get(self, "method")


@pulumi.output_type
class OneDashboardPage(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "widgetAreas":
            suggest = "widget_areas"
        elif key == "widgetBars":
            suggest = "widget_bars"
        elif key == "widgetBillboards":
            suggest = "widget_billboards"
        elif key == "widgetBullets":
            suggest = "widget_bullets"
        elif key == "widgetFunnels":
            suggest = "widget_funnels"
        elif key == "widgetHeatmaps":
            suggest = "widget_heatmaps"
        elif key == "widgetHistograms":
            suggest = "widget_histograms"
        elif key == "widgetJsons":
            suggest = "widget_jsons"
        elif key == "widgetLines":
            suggest = "widget_lines"
        elif key == "widgetLogTables":
            suggest = "widget_log_tables"
        elif key == "widgetMarkdowns":
            suggest = "widget_markdowns"
        elif key == "widgetPies":
            suggest = "widget_pies"
        elif key == "widgetStackedBars":
            suggest = "widget_stacked_bars"
        elif key == "widgetTables":
            suggest = "widget_tables"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPage. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPage.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPage.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 description: Optional[str] = None,
                 guid: Optional[str] = None,
                 widget_areas: Optional[Sequence['outputs.OneDashboardPageWidgetArea']] = None,
                 widget_bars: Optional[Sequence['outputs.OneDashboardPageWidgetBar']] = None,
                 widget_billboards: Optional[Sequence['outputs.OneDashboardPageWidgetBillboard']] = None,
                 widget_bullets: Optional[Sequence['outputs.OneDashboardPageWidgetBullet']] = None,
                 widget_funnels: Optional[Sequence['outputs.OneDashboardPageWidgetFunnel']] = None,
                 widget_heatmaps: Optional[Sequence['outputs.OneDashboardPageWidgetHeatmap']] = None,
                 widget_histograms: Optional[Sequence['outputs.OneDashboardPageWidgetHistogram']] = None,
                 widget_jsons: Optional[Sequence['outputs.OneDashboardPageWidgetJson']] = None,
                 widget_lines: Optional[Sequence['outputs.OneDashboardPageWidgetLine']] = None,
                 widget_log_tables: Optional[Sequence['outputs.OneDashboardPageWidgetLogTable']] = None,
                 widget_markdowns: Optional[Sequence['outputs.OneDashboardPageWidgetMarkdown']] = None,
                 widget_pies: Optional[Sequence['outputs.OneDashboardPageWidgetPy']] = None,
                 widget_stacked_bars: Optional[Sequence['outputs.OneDashboardPageWidgetStackedBar']] = None,
                 widget_tables: Optional[Sequence['outputs.OneDashboardPageWidgetTable']] = None):
        """
        :param str name: The title of the dashboard.
        :param str description: Brief text describing the dashboard.
        :param str guid: The unique entity identifier of the dashboard page in New Relic.
        """
        pulumi.set(__self__, "name", name)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if guid is not None:
            pulumi.set(__self__, "guid", guid)
        if widget_areas is not None:
            pulumi.set(__self__, "widget_areas", widget_areas)
        if widget_bars is not None:
            pulumi.set(__self__, "widget_bars", widget_bars)
        if widget_billboards is not None:
            pulumi.set(__self__, "widget_billboards", widget_billboards)
        if widget_bullets is not None:
            pulumi.set(__self__, "widget_bullets", widget_bullets)
        if widget_funnels is not None:
            pulumi.set(__self__, "widget_funnels", widget_funnels)
        if widget_heatmaps is not None:
            pulumi.set(__self__, "widget_heatmaps", widget_heatmaps)
        if widget_histograms is not None:
            pulumi.set(__self__, "widget_histograms", widget_histograms)
        if widget_jsons is not None:
            pulumi.set(__self__, "widget_jsons", widget_jsons)
        if widget_lines is not None:
            pulumi.set(__self__, "widget_lines", widget_lines)
        if widget_log_tables is not None:
            pulumi.set(__self__, "widget_log_tables", widget_log_tables)
        if widget_markdowns is not None:
            pulumi.set(__self__, "widget_markdowns", widget_markdowns)
        if widget_pies is not None:
            pulumi.set(__self__, "widget_pies", widget_pies)
        if widget_stacked_bars is not None:
            pulumi.set(__self__, "widget_stacked_bars", widget_stacked_bars)
        if widget_tables is not None:
            pulumi.set(__self__, "widget_tables", widget_tables)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The title of the dashboard.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Brief text describing the dashboard.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def guid(self) -> Optional[str]:
        """
        The unique entity identifier of the dashboard page in New Relic.
        """
        return pulumi.get(self, "guid")

    @property
    @pulumi.getter(name="widgetAreas")
    def widget_areas(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetArea']]:
        return pulumi.get(self, "widget_areas")

    @property
    @pulumi.getter(name="widgetBars")
    def widget_bars(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBar']]:
        return pulumi.get(self, "widget_bars")

    @property
    @pulumi.getter(name="widgetBillboards")
    def widget_billboards(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBillboard']]:
        return pulumi.get(self, "widget_billboards")

    @property
    @pulumi.getter(name="widgetBullets")
    def widget_bullets(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBullet']]:
        return pulumi.get(self, "widget_bullets")

    @property
    @pulumi.getter(name="widgetFunnels")
    def widget_funnels(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetFunnel']]:
        return pulumi.get(self, "widget_funnels")

    @property
    @pulumi.getter(name="widgetHeatmaps")
    def widget_heatmaps(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHeatmap']]:
        return pulumi.get(self, "widget_heatmaps")

    @property
    @pulumi.getter(name="widgetHistograms")
    def widget_histograms(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHistogram']]:
        return pulumi.get(self, "widget_histograms")

    @property
    @pulumi.getter(name="widgetJsons")
    def widget_jsons(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetJson']]:
        return pulumi.get(self, "widget_jsons")

    @property
    @pulumi.getter(name="widgetLines")
    def widget_lines(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLine']]:
        return pulumi.get(self, "widget_lines")

    @property
    @pulumi.getter(name="widgetLogTables")
    def widget_log_tables(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLogTable']]:
        return pulumi.get(self, "widget_log_tables")

    @property
    @pulumi.getter(name="widgetMarkdowns")
    def widget_markdowns(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetMarkdown']]:
        return pulumi.get(self, "widget_markdowns")

    @property
    @pulumi.getter(name="widgetPies")
    def widget_pies(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetPy']]:
        return pulumi.get(self, "widget_pies")

    @property
    @pulumi.getter(name="widgetStackedBars")
    def widget_stacked_bars(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetStackedBar']]:
        return pulumi.get(self, "widget_stacked_bars")

    @property
    @pulumi.getter(name="widgetTables")
    def widget_tables(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetTable']]:
        return pulumi.get(self, "widget_tables")


@pulumi.output_type
class OneDashboardPageWidgetArea(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetArea. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetArea.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetArea.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetAreaNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetAreaColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetAreaNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetAreaUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetAreaNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetAreaColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetAreaNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetAreaUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetAreaNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetAreaColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetAreaNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetAreaUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetAreaColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetAreaColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetAreaColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetAreaColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetAreaColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetAreaColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetAreaColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetAreaColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetAreaColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetAreaColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetAreaColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetAreaNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetAreaNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetAreaNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetAreaNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetAreaNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetAreaNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetAreaNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetAreaNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetAreaNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetAreaNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetAreaNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetAreaNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetAreaNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetAreaNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetAreaNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetAreaUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetAreaUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetAreaUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetAreaUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetAreaUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetAreaUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetAreaUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetAreaUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetAreaUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetAreaUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetAreaUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetBar(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "filterCurrentDashboard":
            suggest = "filter_current_dashboard"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "linkedEntityGuids":
            suggest = "linked_entity_guids"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBar. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBar.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBar.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetBarNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetBarColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 filter_current_dashboard: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 linked_entity_guids: Optional[Sequence[str]] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetBarNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetBarUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetBarNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetBarColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param bool filter_current_dashboard: (Optional) Use this item to filter the current dashboard.
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence[str] linked_entity_guids: (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        :param Sequence['OneDashboardPageWidgetBarNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetBarUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if filter_current_dashboard is not None:
            pulumi.set(__self__, "filter_current_dashboard", filter_current_dashboard)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if linked_entity_guids is not None:
            pulumi.set(__self__, "linked_entity_guids", linked_entity_guids)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetBarNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBarColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter(name="filterCurrentDashboard")
    def filter_current_dashboard(self) -> Optional[bool]:
        """
        (Optional) Use this item to filter the current dashboard.
        """
        return pulumi.get(self, "filter_current_dashboard")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="linkedEntityGuids")
    def linked_entity_guids(self) -> Optional[Sequence[str]]:
        """
        (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        """
        return pulumi.get(self, "linked_entity_guids")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBarNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBarUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetBarColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBarColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBarColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBarColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBarColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetBarColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBarColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetBarColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBarColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBarColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBarColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetBarNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBarNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBarNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBarNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetBarNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBarNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBarNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBarNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBarNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetBarNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBarNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetBarNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBarNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBarNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBarNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetBarUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBarUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBarUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBarUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBarUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetBarUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBarUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetBarUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBarUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBarUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBarUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetBillboard(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBillboard. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBillboard.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBillboard.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetBillboardNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetBillboardColor']] = None,
                 critical: Optional[str] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetBillboardNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetBillboardUnit']] = None,
                 warning: Optional[str] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetBillboardNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetBillboardColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param str critical: (Optional) Threshold above which the displayed value will be styled with a red color.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetBillboardNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetBillboardUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param str warning: (Optional) Threshold above which the displayed value will be styled with a yellow color.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if critical is not None:
            pulumi.set(__self__, "critical", critical)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if warning is not None:
            pulumi.set(__self__, "warning", warning)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetBillboardNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBillboardColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter
    def critical(self) -> Optional[str]:
        """
        (Optional) Threshold above which the displayed value will be styled with a red color.
        """
        return pulumi.get(self, "critical")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBillboardNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBillboardUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def warning(self) -> Optional[str]:
        """
        (Optional) Threshold above which the displayed value will be styled with a yellow color.
        """
        return pulumi.get(self, "warning")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetBillboardColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBillboardColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBillboardColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBillboardColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBillboardColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetBillboardColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBillboardColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetBillboardColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBillboardColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBillboardColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBillboardColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetBillboardNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBillboardNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBillboardNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBillboardNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetBillboardNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBillboardNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBillboardNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBillboardNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBillboardNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetBillboardNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBillboardNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetBillboardNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBillboardNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBillboardNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBillboardNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetBillboardUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBillboardUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBillboardUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBillboardUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBillboardUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetBillboardUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBillboardUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetBillboardUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBillboardUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBillboardUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBillboardUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetBullet(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBullet. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBullet.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBullet.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 limit: float,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetBulletNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetBulletColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetBulletNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetBulletUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param float limit: (Required) Visualization limit for the widget.
        :param Sequence['OneDashboardPageWidgetBulletNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetBulletColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetBulletNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetBulletUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "limit", limit)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter
    def limit(self) -> float:
        """
        (Required) Visualization limit for the widget.
        """
        return pulumi.get(self, "limit")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetBulletNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBulletColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBulletNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBulletUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetBulletColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBulletColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBulletColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBulletColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBulletColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetBulletColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBulletColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetBulletColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBulletColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBulletColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBulletColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetBulletNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBulletNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBulletNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBulletNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetBulletNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBulletNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBulletNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBulletNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBulletNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetBulletNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBulletNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetBulletNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBulletNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBulletNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBulletNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetBulletUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBulletUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBulletUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBulletUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetBulletUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetBulletUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetBulletUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetBulletUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetBulletUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetBulletUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetBulletUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetFunnel(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetFunnel. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetFunnel.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetFunnel.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetFunnelNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetFunnelColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetFunnelNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetFunnelUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetFunnelNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetFunnelColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetFunnelNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetFunnelUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetFunnelNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetFunnelColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetFunnelNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetFunnelUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetFunnelColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetFunnelColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetFunnelColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetFunnelColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetFunnelColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetFunnelColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetFunnelColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetFunnelColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetFunnelColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetFunnelColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetFunnelColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetFunnelNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetFunnelNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetFunnelNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetFunnelNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetFunnelNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetFunnelNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetFunnelNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetFunnelNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetFunnelNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetFunnelNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetFunnelNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetFunnelNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetFunnelNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetFunnelNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetFunnelNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetFunnelUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetFunnelUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetFunnelUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetFunnelUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetFunnelUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetFunnelUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetFunnelUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetFunnelUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetFunnelUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetFunnelUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetFunnelUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetHeatmap(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "filterCurrentDashboard":
            suggest = "filter_current_dashboard"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "linkedEntityGuids":
            suggest = "linked_entity_guids"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHeatmap. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHeatmap.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHeatmap.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetHeatmapNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 filter_current_dashboard: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 linked_entity_guids: Optional[Sequence[str]] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetHeatmapNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetHeatmapColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param bool filter_current_dashboard: (Optional) Use this item to filter the current dashboard.
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence[str] linked_entity_guids: (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        :param Sequence['OneDashboardPageWidgetHeatmapNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetHeatmapUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if filter_current_dashboard is not None:
            pulumi.set(__self__, "filter_current_dashboard", filter_current_dashboard)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if linked_entity_guids is not None:
            pulumi.set(__self__, "linked_entity_guids", linked_entity_guids)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetHeatmapNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter(name="filterCurrentDashboard")
    def filter_current_dashboard(self) -> Optional[bool]:
        """
        (Optional) Use this item to filter the current dashboard.
        """
        return pulumi.get(self, "filter_current_dashboard")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="linkedEntityGuids")
    def linked_entity_guids(self) -> Optional[Sequence[str]]:
        """
        (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        """
        return pulumi.get(self, "linked_entity_guids")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetHeatmapColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHeatmapColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHeatmapColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHeatmapColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetHeatmapColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetHeatmapColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHeatmapColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHeatmapColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHeatmapColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetHeatmapNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHeatmapNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHeatmapNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHeatmapNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetHeatmapNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHeatmapNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHeatmapNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHeatmapNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetHeatmapNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetHeatmapNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHeatmapNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHeatmapNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHeatmapNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetHeatmapUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHeatmapUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHeatmapUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHeatmapUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetHeatmapUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHeatmapUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetHeatmapUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHeatmapUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHeatmapUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHeatmapUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetHistogram(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHistogram. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHistogram.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHistogram.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetHistogramNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetHistogramColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetHistogramNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetHistogramUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetHistogramNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetHistogramColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetHistogramNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetHistogramUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetHistogramNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHistogramColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHistogramNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHistogramUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetHistogramColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHistogramColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHistogramColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHistogramColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetHistogramColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetHistogramColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHistogramColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetHistogramColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHistogramColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHistogramColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHistogramColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetHistogramNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHistogramNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHistogramNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHistogramNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetHistogramNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHistogramNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHistogramNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHistogramNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetHistogramNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetHistogramNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHistogramNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetHistogramNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHistogramNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHistogramNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHistogramNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetHistogramUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHistogramUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHistogramUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHistogramUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetHistogramUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetHistogramUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetHistogramUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetHistogramUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetHistogramUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetHistogramUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetHistogramUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetJson(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetJson. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetJson.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetJson.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetJsonNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetJsonColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetJsonNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetJsonUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetJsonNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetJsonColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetJsonNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetJsonUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetJsonNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetJsonColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetJsonNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetJsonUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetJsonColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetJsonColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetJsonColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetJsonColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetJsonColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetJsonColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetJsonColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetJsonColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetJsonColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetJsonColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetJsonColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetJsonNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetJsonNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetJsonNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetJsonNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetJsonNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetJsonNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetJsonNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetJsonNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetJsonNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetJsonNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetJsonNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetJsonNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetJsonNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetJsonNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetJsonNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetJsonUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetJsonUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetJsonUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetJsonUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetJsonUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetJsonUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetJsonUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetJsonUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetJsonUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetJsonUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetJsonUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetLine(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLine. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLine.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLine.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetLineNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetLineColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetLineNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetLineUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetLineNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetLineColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetLineNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetLineUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetLineNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLineColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLineNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLineUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetLineColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLineColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLineColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLineColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetLineColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetLineColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLineColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetLineColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLineColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLineColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLineColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetLineNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLineNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLineNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLineNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetLineNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLineNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLineNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLineNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetLineNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetLineNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLineNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetLineNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLineNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLineNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLineNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetLineUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLineUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLineUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLineUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetLineUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetLineUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLineUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetLineUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLineUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLineUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLineUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetLogTable(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLogTable. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLogTable.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLogTable.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetLogTableNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetLogTableColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetLogTableNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetLogTableUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetLogTableNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetLogTableColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetLogTableNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetLogTableUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetLogTableNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLogTableColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLogTableNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLogTableUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetLogTableColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLogTableColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLogTableColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLogTableColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetLogTableColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetLogTableColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLogTableColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetLogTableColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLogTableColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLogTableColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLogTableColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetLogTableNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLogTableNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLogTableNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLogTableNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetLogTableNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLogTableNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLogTableNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLogTableNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetLogTableNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetLogTableNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLogTableNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetLogTableNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLogTableNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLogTableNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLogTableNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetLogTableUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLogTableUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLogTableUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLogTableUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetLogTableUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetLogTableUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetLogTableUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetLogTableUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetLogTableUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetLogTableUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetLogTableUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetMarkdown(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetMarkdown. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetMarkdown.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetMarkdown.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownNullValue']] = None,
                 text: Optional[str] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetMarkdownColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetMarkdownNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param str text: (Required) The markdown source to be rendered in the widget.
        :param Sequence['OneDashboardPageWidgetMarkdownUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if text is not None:
            pulumi.set(__self__, "text", text)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def text(self) -> Optional[str]:
        """
        (Required) The markdown source to be rendered in the widget.
        """
        return pulumi.get(self, "text")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetMarkdownColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetMarkdownColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetMarkdownColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetMarkdownColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetMarkdownColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetMarkdownColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetMarkdownColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetMarkdownColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetMarkdownColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetMarkdownNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetMarkdownNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetMarkdownNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetMarkdownNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetMarkdownNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetMarkdownNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetMarkdownNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetMarkdownNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetMarkdownNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetMarkdownUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetMarkdownUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetMarkdownUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetMarkdownUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetMarkdownUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetMarkdownUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetMarkdownUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetMarkdownUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetMarkdownUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetMarkdownUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetPy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "filterCurrentDashboard":
            suggest = "filter_current_dashboard"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "linkedEntityGuids":
            suggest = "linked_entity_guids"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetPy. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetPy.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetPy.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetPyNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetPyColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 filter_current_dashboard: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 linked_entity_guids: Optional[Sequence[str]] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetPyNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetPyUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetPyNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetPyColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param bool filter_current_dashboard: (Optional) Use this item to filter the current dashboard.
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence[str] linked_entity_guids: (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        :param Sequence['OneDashboardPageWidgetPyNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetPyUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if filter_current_dashboard is not None:
            pulumi.set(__self__, "filter_current_dashboard", filter_current_dashboard)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if linked_entity_guids is not None:
            pulumi.set(__self__, "linked_entity_guids", linked_entity_guids)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetPyNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetPyColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter(name="filterCurrentDashboard")
    def filter_current_dashboard(self) -> Optional[bool]:
        """
        (Optional) Use this item to filter the current dashboard.
        """
        return pulumi.get(self, "filter_current_dashboard")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="linkedEntityGuids")
    def linked_entity_guids(self) -> Optional[Sequence[str]]:
        """
        (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        """
        return pulumi.get(self, "linked_entity_guids")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetPyNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetPyUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetPyColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetPyColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetPyColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetPyColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetPyColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetPyColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetPyColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetPyColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetPyColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetPyColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetPyColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetPyNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetPyNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetPyNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetPyNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetPyNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetPyNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetPyNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetPyNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetPyNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetPyNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetPyNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetPyNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetPyNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetPyNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetPyNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetPyUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetPyUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetPyUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetPyUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetPyUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetPyUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetPyUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetPyUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetPyUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetPyUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetPyUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetStackedBar(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetStackedBar. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetStackedBar.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetStackedBar.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetStackedBarNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetStackedBarNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetStackedBarColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence['OneDashboardPageWidgetStackedBarNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetStackedBarUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetStackedBarNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetStackedBarColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetStackedBarColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetStackedBarColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetStackedBarColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetStackedBarColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetStackedBarColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetStackedBarColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetStackedBarColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetStackedBarColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetStackedBarNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetStackedBarNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetStackedBarNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetStackedBarNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetStackedBarNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetStackedBarNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetStackedBarNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetStackedBarNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetStackedBarNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetStackedBarNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetStackedBarNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetStackedBarNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetStackedBarNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetStackedBarUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetStackedBarUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetStackedBarUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetStackedBarUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetStackedBarUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetStackedBarUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetStackedBarUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetStackedBarUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetStackedBarUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetStackedBarUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetTable(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nrqlQueries":
            suggest = "nrql_queries"
        elif key == "facetShowOtherSeries":
            suggest = "facet_show_other_series"
        elif key == "filterCurrentDashboard":
            suggest = "filter_current_dashboard"
        elif key == "ignoreTimeRange":
            suggest = "ignore_time_range"
        elif key == "legendEnabled":
            suggest = "legend_enabled"
        elif key == "linkedEntityGuids":
            suggest = "linked_entity_guids"
        elif key == "nullValues":
            suggest = "null_values"
        elif key == "yAxisLeftMax":
            suggest = "y_axis_left_max"
        elif key == "yAxisLeftMin":
            suggest = "y_axis_left_min"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetTable. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetTable.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetTable.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 nrql_queries: Sequence['outputs.OneDashboardPageWidgetTableNrqlQuery'],
                 row: int,
                 title: str,
                 colors: Optional[Sequence['outputs.OneDashboardPageWidgetTableColor']] = None,
                 facet_show_other_series: Optional[bool] = None,
                 filter_current_dashboard: Optional[bool] = None,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 ignore_time_range: Optional[bool] = None,
                 legend_enabled: Optional[bool] = None,
                 linked_entity_guids: Optional[Sequence[str]] = None,
                 null_values: Optional[Sequence['outputs.OneDashboardPageWidgetTableNullValue']] = None,
                 units: Optional[Sequence['outputs.OneDashboardPageWidgetTableUnit']] = None,
                 width: Optional[int] = None,
                 y_axis_left_max: Optional[float] = None,
                 y_axis_left_min: Optional[float] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param Sequence['OneDashboardPageWidgetTableNrqlQueryArgs'] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param Sequence['OneDashboardPageWidgetTableColorArgs'] colors: (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        :param bool facet_show_other_series: (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        :param bool filter_current_dashboard: (Optional) Use this item to filter the current dashboard.
        :param int height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param bool ignore_time_range: (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        :param bool legend_enabled: (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        :param Sequence[str] linked_entity_guids: (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        :param Sequence['OneDashboardPageWidgetTableNullValueArgs'] null_values: (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        :param Sequence['OneDashboardPageWidgetTableUnitArgs'] units: (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        :param int width: (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        :param float y_axis_left_min: , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if colors is not None:
            pulumi.set(__self__, "colors", colors)
        if facet_show_other_series is not None:
            pulumi.set(__self__, "facet_show_other_series", facet_show_other_series)
        if filter_current_dashboard is not None:
            pulumi.set(__self__, "filter_current_dashboard", filter_current_dashboard)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if ignore_time_range is not None:
            pulumi.set(__self__, "ignore_time_range", ignore_time_range)
        if legend_enabled is not None:
            pulumi.set(__self__, "legend_enabled", legend_enabled)
        if linked_entity_guids is not None:
            pulumi.set(__self__, "linked_entity_guids", linked_entity_guids)
        if null_values is not None:
            pulumi.set(__self__, "null_values", null_values)
        if units is not None:
            pulumi.set(__self__, "units", units)
        if width is not None:
            pulumi.set(__self__, "width", width)
        if y_axis_left_max is not None:
            pulumi.set(__self__, "y_axis_left_max", y_axis_left_max)
        if y_axis_left_min is not None:
            pulumi.set(__self__, "y_axis_left_min", y_axis_left_min)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter(name="nrqlQueries")
    def nrql_queries(self) -> Sequence['outputs.OneDashboardPageWidgetTableNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_queries")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def colors(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetTableColor']]:
        """
        (Optional) A nested block that describes colors of your charts per series. See Nested Colors blocks below for details.
        """
        return pulumi.get(self, "colors")

    @property
    @pulumi.getter(name="facetShowOtherSeries")
    def facet_show_other_series(self) -> Optional[bool]:
        """
        (Optional) Enable or disable the Other group in visualisations. The other group is used if a facet on a query returns more than 2000 items for bar charts, pie charts, and tables. The other group aggregates the rest of the facets. Defaults to `false`
        """
        return pulumi.get(self, "facet_show_other_series")

    @property
    @pulumi.getter(name="filterCurrentDashboard")
    def filter_current_dashboard(self) -> Optional[bool]:
        """
        (Optional) Use this item to filter the current dashboard.
        """
        return pulumi.get(self, "filter_current_dashboard")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the time range in this query will override the time picker on dashboards and other pages. Defaults to `false`.
        """
        return pulumi.get(self, "ignore_time_range")

    @property
    @pulumi.getter(name="legendEnabled")
    def legend_enabled(self) -> Optional[bool]:
        """
        (Optional) With this turned on, the legend will be displayed. Defaults to `true`.
        """
        return pulumi.get(self, "legend_enabled")

    @property
    @pulumi.getter(name="linkedEntityGuids")
    def linked_entity_guids(self) -> Optional[Sequence[str]]:
        """
        (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        """
        return pulumi.get(self, "linked_entity_guids")

    @property
    @pulumi.getter(name="nullValues")
    def null_values(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetTableNullValue']]:
        """
        (Optional) A nested block that describes a Null Values. See Nested Null Values blocks below for details.
        """
        return pulumi.get(self, "null_values")

    @property
    @pulumi.getter
    def units(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetTableUnit']]:
        """
        (Optional) A nested block that describes units on your Y axis. See Nested Units blocks below for details.
        """
        return pulumi.get(self, "units")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `4`.
        """
        return pulumi.get(self, "width")

    @property
    @pulumi.getter(name="yAxisLeftMax")
    def y_axis_left_max(self) -> Optional[float]:
        return pulumi.get(self, "y_axis_left_max")

    @property
    @pulumi.getter(name="yAxisLeftMin")
    def y_axis_left_min(self) -> Optional[float]:
        """
        , `y_axis_left_max` - (Optional) Adjust the Y axis to display the data within certain values by setting a minimum and maximum value for the axis for line charts and area charts. If no customization option is selected, dashboards automatically displays the full Y axis from 0 to the top value plus a margin.
        """
        return pulumi.get(self, "y_axis_left_min")


@pulumi.output_type
class OneDashboardPageWidgetTableColor(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetTableColor. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetTableColor.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetTableColor.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetTableColorSeriesOverride']] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        :param Sequence['OneDashboardPageWidgetTableColorSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetTableColorSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetTableColorSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetTableColorSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetTableColorSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetTableColorSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 color: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str color: (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        if color is not None:
            pulumi.set(__self__, "color", color)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter
    def color(self) -> Optional[str]:
        """
        (Optional) Choose a color to customize the color of your charts per series in area, bar, line, pie, and stacked bar charts. Accepted values are RGB, HEX, or HSL code.
        """
        return pulumi.get(self, "color")

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


@pulumi.output_type
class OneDashboardPageWidgetTableNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetTableNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetTableNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetTableNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_id: Optional[int] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        :param int account_id: Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        pulumi.set(__self__, "query", query)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account where the dashboard will be created. Defaults to the account associated with the API key used.
        """
        return pulumi.get(self, "account_id")


@pulumi.output_type
class OneDashboardPageWidgetTableNullValue(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetTableNullValue. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetTableNullValue.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetTableNullValue.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetTableNullValueSeriesOverride']] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        :param Sequence['OneDashboardPageWidgetTableNullValueSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetTableNullValueSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")


@pulumi.output_type
class OneDashboardPageWidgetTableNullValueSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "nullValue":
            suggest = "null_value"
        elif key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetTableNullValueSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetTableNullValueSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetTableNullValueSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 null_value: Optional[str] = None,
                 series_name: Optional[str] = None):
        """
        :param str null_value: Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        if null_value is not None:
            pulumi.set(__self__, "null_value", null_value)
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)

    @property
    @pulumi.getter(name="nullValue")
    def null_value(self) -> Optional[str]:
        """
        Choose an option in displaying null values. Accepted values are `default`, `remove`, `preserve`, or `zero`.
        """
        return pulumi.get(self, "null_value")

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


@pulumi.output_type
class OneDashboardPageWidgetTableUnit(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesOverrides":
            suggest = "series_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetTableUnit. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetTableUnit.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetTableUnit.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_overrides: Optional[Sequence['outputs.OneDashboardPageWidgetTableUnitSeriesOverride']] = None,
                 unit: Optional[str] = None):
        """
        :param Sequence['OneDashboardPageWidgetTableUnitSeriesOverrideArgs'] series_overrides: (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_overrides is not None:
            pulumi.set(__self__, "series_overrides", series_overrides)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter(name="seriesOverrides")
    def series_overrides(self) -> Optional[Sequence['outputs.OneDashboardPageWidgetTableUnitSeriesOverride']]:
        """
        (Optional) A Nested block which will take two string attributes `color` and `series_name`. This nested block is used to customize colors of individual.
        """
        return pulumi.get(self, "series_overrides")

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardPageWidgetTableUnitSeriesOverride(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "seriesName":
            suggest = "series_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardPageWidgetTableUnitSeriesOverride. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardPageWidgetTableUnitSeriesOverride.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardPageWidgetTableUnitSeriesOverride.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 series_name: Optional[str] = None,
                 unit: Optional[str] = None):
        """
        :param str unit: (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        if series_name is not None:
            pulumi.set(__self__, "series_name", series_name)
        if unit is not None:
            pulumi.set(__self__, "unit", unit)

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

    @property
    @pulumi.getter
    def unit(self) -> Optional[str]:
        """
        (Optional) Choose a unit to customize the unit on your Y axis and in each of your series.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class OneDashboardRawPage(dict):
    def __init__(__self__, *,
                 name: str,
                 description: Optional[str] = None,
                 guid: Optional[str] = None,
                 widgets: Optional[Sequence['outputs.OneDashboardRawPageWidget']] = None):
        """
        :param str name: The title of the dashboard.
        :param str description: Brief text describing the dashboard.
        :param str guid: The unique entity identifier of the dashboard page in New Relic.
        :param Sequence['OneDashboardRawPageWidgetArgs'] widgets: (Optional) A nested block that describes a widget. See Nested widget blocks below for details.
        """
        pulumi.set(__self__, "name", name)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if guid is not None:
            pulumi.set(__self__, "guid", guid)
        if widgets is not None:
            pulumi.set(__self__, "widgets", widgets)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The title of the dashboard.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        Brief text describing the dashboard.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def guid(self) -> Optional[str]:
        """
        The unique entity identifier of the dashboard page in New Relic.
        """
        return pulumi.get(self, "guid")

    @property
    @pulumi.getter
    def widgets(self) -> Optional[Sequence['outputs.OneDashboardRawPageWidget']]:
        """
        (Optional) A nested block that describes a widget. See Nested widget blocks below for details.
        """
        return pulumi.get(self, "widgets")


@pulumi.output_type
class OneDashboardRawPageWidget(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "visualizationId":
            suggest = "visualization_id"
        elif key == "linkedEntityGuids":
            suggest = "linked_entity_guids"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardRawPageWidget. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardRawPageWidget.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardRawPageWidget.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 column: int,
                 configuration: str,
                 row: int,
                 title: str,
                 visualization_id: str,
                 height: Optional[int] = None,
                 id: Optional[str] = None,
                 linked_entity_guids: Optional[Sequence[str]] = None,
                 width: Optional[int] = None):
        """
        :param int column: (Required) Column position of widget from top left, starting at `1`.
        :param str configuration: (Required) The configuration of the widget.
        :param int row: (Required) Row position of widget from top left, starting at `1`.
        :param str title: (Required) A title for the widget.
        :param str visualization_id: (Required) The visualization ID of the widget
        :param int height: (Optional) Height of the widget. Valid values are `1` to `12` inclusive. Defaults to `3`.
        :param Sequence[str] linked_entity_guids: (Optional) Related entity GUIDs.
        :param int width: (Optional) Width of the widget. Valid values are `1` to `12` inclusive. Defaults to `4`.
        """
        pulumi.set(__self__, "column", column)
        pulumi.set(__self__, "configuration", configuration)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        pulumi.set(__self__, "visualization_id", visualization_id)
        if height is not None:
            pulumi.set(__self__, "height", height)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if linked_entity_guids is not None:
            pulumi.set(__self__, "linked_entity_guids", linked_entity_guids)
        if width is not None:
            pulumi.set(__self__, "width", width)

    @property
    @pulumi.getter
    def column(self) -> int:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

    @property
    @pulumi.getter
    def configuration(self) -> str:
        """
        (Required) The configuration of the widget.
        """
        return pulumi.get(self, "configuration")

    @property
    @pulumi.getter
    def row(self) -> int:
        """
        (Required) Row position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "row")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Required) A title for the widget.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter(name="visualizationId")
    def visualization_id(self) -> str:
        """
        (Required) The visualization ID of the widget
        """
        return pulumi.get(self, "visualization_id")

    @property
    @pulumi.getter
    def height(self) -> Optional[int]:
        """
        (Optional) Height of the widget. Valid values are `1` to `12` inclusive. Defaults to `3`.
        """
        return pulumi.get(self, "height")

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

    @property
    @pulumi.getter(name="linkedEntityGuids")
    def linked_entity_guids(self) -> Optional[Sequence[str]]:
        """
        (Optional) Related entity GUIDs.
        """
        return pulumi.get(self, "linked_entity_guids")

    @property
    @pulumi.getter
    def width(self) -> Optional[int]:
        """
        (Optional) Width of the widget. Valid values are `1` to `12` inclusive. Defaults to `4`.
        """
        return pulumi.get(self, "width")


@pulumi.output_type
class OneDashboardVariable(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "replacementStrategy":
            suggest = "replacement_strategy"
        elif key == "defaultValues":
            suggest = "default_values"
        elif key == "isMultiSelection":
            suggest = "is_multi_selection"
        elif key == "nrqlQuery":
            suggest = "nrql_query"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardVariable. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardVariable.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardVariable.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 replacement_strategy: str,
                 title: str,
                 type: str,
                 default_values: Optional[Sequence[str]] = None,
                 is_multi_selection: Optional[bool] = None,
                 items: Optional[Sequence['outputs.OneDashboardVariableItem']] = None,
                 nrql_query: Optional['outputs.OneDashboardVariableNrqlQuery'] = None):
        """
        :param str name: The title of the dashboard.
        :param str replacement_strategy: (Optional) Indicates the strategy to apply when replacing a variable in a NRQL query. One of `default`, `identifier`, `number` or `string`.
        :param str title: (Optional) A human-friendly display string for this value.
        :param str type: (Required) Specifies the data type of the variable and where its possible values may come from. One of `enum`, `nrql` or `string`
        :param Sequence[str] default_values: (Optional) A list of default values for this variable.
        :param bool is_multi_selection: (Optional) Indicates whether this variable supports multiple selection or not. Only applies to variables of type `nrql` or `enum`.
        :param Sequence['OneDashboardVariableItemArgs'] items: (Optional) List of possible values for variables of type `enum`. See Nested item blocks below for details.
        :param 'OneDashboardVariableNrqlQueryArgs' nrql_query: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "replacement_strategy", replacement_strategy)
        pulumi.set(__self__, "title", title)
        pulumi.set(__self__, "type", type)
        if default_values is not None:
            pulumi.set(__self__, "default_values", default_values)
        if is_multi_selection is not None:
            pulumi.set(__self__, "is_multi_selection", is_multi_selection)
        if items is not None:
            pulumi.set(__self__, "items", items)
        if nrql_query is not None:
            pulumi.set(__self__, "nrql_query", nrql_query)

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The title of the dashboard.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="replacementStrategy")
    def replacement_strategy(self) -> str:
        """
        (Optional) Indicates the strategy to apply when replacing a variable in a NRQL query. One of `default`, `identifier`, `number` or `string`.
        """
        return pulumi.get(self, "replacement_strategy")

    @property
    @pulumi.getter
    def title(self) -> str:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        (Required) Specifies the data type of the variable and where its possible values may come from. One of `enum`, `nrql` or `string`
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="defaultValues")
    def default_values(self) -> Optional[Sequence[str]]:
        """
        (Optional) A list of default values for this variable.
        """
        return pulumi.get(self, "default_values")

    @property
    @pulumi.getter(name="isMultiSelection")
    def is_multi_selection(self) -> Optional[bool]:
        """
        (Optional) Indicates whether this variable supports multiple selection or not. Only applies to variables of type `nrql` or `enum`.
        """
        return pulumi.get(self, "is_multi_selection")

    @property
    @pulumi.getter
    def items(self) -> Optional[Sequence['outputs.OneDashboardVariableItem']]:
        """
        (Optional) List of possible values for variables of type `enum`. See Nested item blocks below for details.
        """
        return pulumi.get(self, "items")

    @property
    @pulumi.getter(name="nrqlQuery")
    def nrql_query(self) -> Optional['outputs.OneDashboardVariableNrqlQuery']:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_query")


@pulumi.output_type
class OneDashboardVariableItem(dict):
    def __init__(__self__, *,
                 value: str,
                 title: Optional[str] = None):
        """
        :param str value: (Required) A possible variable value
        :param str title: (Optional) A human-friendly display string for this value.
        """
        pulumi.set(__self__, "value", value)
        if title is not None:
            pulumi.set(__self__, "title", title)

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

    @property
    @pulumi.getter
    def title(self) -> Optional[str]:
        """
        (Optional) A human-friendly display string for this value.
        """
        return pulumi.get(self, "title")


@pulumi.output_type
class OneDashboardVariableNrqlQuery(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountIds":
            suggest = "account_ids"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in OneDashboardVariableNrqlQuery. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        OneDashboardVariableNrqlQuery.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        OneDashboardVariableNrqlQuery.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 query: str,
                 account_ids: Optional[Sequence[int]] = None):
        """
        :param str query: (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        pulumi.set(__self__, "query", query)
        if account_ids is not None:
            pulumi.set(__self__, "account_ids", account_ids)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        (Required) Valid NRQL query string. See [Writing NRQL Queries](https://docs.newrelic.com/docs/insights/nrql-new-relic-query-language/using-nrql/introduction-nrql) for help.
        """
        return pulumi.get(self, "query")

    @property
    @pulumi.getter(name="accountIds")
    def account_ids(self) -> Optional[Sequence[int]]:
        return pulumi.get(self, "account_ids")


@pulumi.output_type
class ServiceLevelEvents(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"
        elif key == "validEvents":
            suggest = "valid_events"
        elif key == "badEvents":
            suggest = "bad_events"
        elif key == "goodEvents":
            suggest = "good_events"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceLevelEvents. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceLevelEvents.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceLevelEvents.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 account_id: int,
                 valid_events: 'outputs.ServiceLevelEventsValidEvents',
                 bad_events: Optional['outputs.ServiceLevelEventsBadEvents'] = None,
                 good_events: Optional['outputs.ServiceLevelEventsGoodEvents'] = None):
        """
        :param int account_id: The ID of the account where the entity (e.g, APM Service, Browser application, Workload, etc.) belongs to,
               and that contains the NRDB data for the SLI/SLO calculations. Note that changing the account ID will force a new resource.
        :param 'ServiceLevelEventsValidEventsArgs' valid_events: The definition of valid requests.
        :param 'ServiceLevelEventsBadEventsArgs' bad_events: The definition of the bad responses. If you define an SLI from valid and bad events, you must leave the good events argument empty.
        :param 'ServiceLevelEventsGoodEventsArgs' good_events: The definition of good responses. If you define an SLI from valid and good events, you must leave the bad events argument empty.
        """
        pulumi.set(__self__, "account_id", account_id)
        pulumi.set(__self__, "valid_events", valid_events)
        if bad_events is not None:
            pulumi.set(__self__, "bad_events", bad_events)
        if good_events is not None:
            pulumi.set(__self__, "good_events", good_events)

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> int:
        """
        The ID of the account where the entity (e.g, APM Service, Browser application, Workload, etc.) belongs to,
        and that contains the NRDB data for the SLI/SLO calculations. Note that changing the account ID will force a new resource.
        """
        return pulumi.get(self, "account_id")

    @property
    @pulumi.getter(name="validEvents")
    def valid_events(self) -> 'outputs.ServiceLevelEventsValidEvents':
        """
        The definition of valid requests.
        """
        return pulumi.get(self, "valid_events")

    @property
    @pulumi.getter(name="badEvents")
    def bad_events(self) -> Optional['outputs.ServiceLevelEventsBadEvents']:
        """
        The definition of the bad responses. If you define an SLI from valid and bad events, you must leave the good events argument empty.
        """
        return pulumi.get(self, "bad_events")

    @property
    @pulumi.getter(name="goodEvents")
    def good_events(self) -> Optional['outputs.ServiceLevelEventsGoodEvents']:
        """
        The definition of good responses. If you define an SLI from valid and good events, you must leave the bad events argument empty.
        """
        return pulumi.get(self, "good_events")


@pulumi.output_type
class ServiceLevelEventsBadEvents(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "from":
            suggest = "from_"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceLevelEventsBadEvents. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceLevelEventsBadEvents.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceLevelEventsBadEvents.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 from_: str,
                 select: Optional['outputs.ServiceLevelEventsBadEventsSelect'] = None,
                 where: Optional[str] = None):
        """
        :param str from_: The event type where NRDB data will be fetched from.
        :param 'ServiceLevelEventsBadEventsSelectArgs' select: The NRQL SELECT clause to aggregate events.
        :param str where: A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
               a particular entity and were successful).
               a particular entity and returned an error).
        """
        pulumi.set(__self__, "from_", from_)
        if select is not None:
            pulumi.set(__self__, "select", select)
        if where is not None:
            pulumi.set(__self__, "where", where)

    @property
    @pulumi.getter(name="from")
    def from_(self) -> str:
        """
        The event type where NRDB data will be fetched from.
        """
        return pulumi.get(self, "from_")

    @property
    @pulumi.getter
    def select(self) -> Optional['outputs.ServiceLevelEventsBadEventsSelect']:
        """
        The NRQL SELECT clause to aggregate events.
        """
        return pulumi.get(self, "select")

    @property
    @pulumi.getter
    def where(self) -> Optional[str]:
        """
        A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
        a particular entity and were successful).
        a particular entity and returned an error).
        """
        return pulumi.get(self, "where")


@pulumi.output_type
class ServiceLevelEventsBadEventsSelect(dict):
    def __init__(__self__, *,
                 function: str,
                 attribute: Optional[str] = None,
                 threshold: Optional[float] = None):
        """
        :param str function: The function to use in the SELECT clause. Valid values are `COUNT` and `SUM`.
        :param str attribute: The event attribute to use in the SELECT clause.
        """
        pulumi.set(__self__, "function", function)
        if attribute is not None:
            pulumi.set(__self__, "attribute", attribute)
        if threshold is not None:
            pulumi.set(__self__, "threshold", threshold)

    @property
    @pulumi.getter
    def function(self) -> str:
        """
        The function to use in the SELECT clause. Valid values are `COUNT` and `SUM`.
        """
        return pulumi.get(self, "function")

    @property
    @pulumi.getter
    def attribute(self) -> Optional[str]:
        """
        The event attribute to use in the SELECT clause.
        """
        return pulumi.get(self, "attribute")

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


@pulumi.output_type
class ServiceLevelEventsGoodEvents(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "from":
            suggest = "from_"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceLevelEventsGoodEvents. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceLevelEventsGoodEvents.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceLevelEventsGoodEvents.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 from_: str,
                 select: Optional['outputs.ServiceLevelEventsGoodEventsSelect'] = None,
                 where: Optional[str] = None):
        """
        :param str from_: The event type where NRDB data will be fetched from.
        :param 'ServiceLevelEventsGoodEventsSelectArgs' select: The NRQL SELECT clause to aggregate events.
        :param str where: A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
               a particular entity and were successful).
               a particular entity and returned an error).
        """
        pulumi.set(__self__, "from_", from_)
        if select is not None:
            pulumi.set(__self__, "select", select)
        if where is not None:
            pulumi.set(__self__, "where", where)

    @property
    @pulumi.getter(name="from")
    def from_(self) -> str:
        """
        The event type where NRDB data will be fetched from.
        """
        return pulumi.get(self, "from_")

    @property
    @pulumi.getter
    def select(self) -> Optional['outputs.ServiceLevelEventsGoodEventsSelect']:
        """
        The NRQL SELECT clause to aggregate events.
        """
        return pulumi.get(self, "select")

    @property
    @pulumi.getter
    def where(self) -> Optional[str]:
        """
        A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
        a particular entity and were successful).
        a particular entity and returned an error).
        """
        return pulumi.get(self, "where")


@pulumi.output_type
class ServiceLevelEventsGoodEventsSelect(dict):
    def __init__(__self__, *,
                 function: str,
                 attribute: Optional[str] = None,
                 threshold: Optional[float] = None):
        """
        :param str function: The function to use in the SELECT clause. Valid values are `COUNT` and `SUM`.
        :param str attribute: The event attribute to use in the SELECT clause.
        """
        pulumi.set(__self__, "function", function)
        if attribute is not None:
            pulumi.set(__self__, "attribute", attribute)
        if threshold is not None:
            pulumi.set(__self__, "threshold", threshold)

    @property
    @pulumi.getter
    def function(self) -> str:
        """
        The function to use in the SELECT clause. Valid values are `COUNT` and `SUM`.
        """
        return pulumi.get(self, "function")

    @property
    @pulumi.getter
    def attribute(self) -> Optional[str]:
        """
        The event attribute to use in the SELECT clause.
        """
        return pulumi.get(self, "attribute")

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


@pulumi.output_type
class ServiceLevelEventsValidEvents(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "from":
            suggest = "from_"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceLevelEventsValidEvents. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceLevelEventsValidEvents.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceLevelEventsValidEvents.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 from_: str,
                 select: Optional['outputs.ServiceLevelEventsValidEventsSelect'] = None,
                 where: Optional[str] = None):
        """
        :param str from_: The event type where NRDB data will be fetched from.
        :param 'ServiceLevelEventsValidEventsSelectArgs' select: The NRQL SELECT clause to aggregate events.
        :param str where: A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
               a particular entity and were successful).
               a particular entity and returned an error).
        """
        pulumi.set(__self__, "from_", from_)
        if select is not None:
            pulumi.set(__self__, "select", select)
        if where is not None:
            pulumi.set(__self__, "where", where)

    @property
    @pulumi.getter(name="from")
    def from_(self) -> str:
        """
        The event type where NRDB data will be fetched from.
        """
        return pulumi.get(self, "from_")

    @property
    @pulumi.getter
    def select(self) -> Optional['outputs.ServiceLevelEventsValidEventsSelect']:
        """
        The NRQL SELECT clause to aggregate events.
        """
        return pulumi.get(self, "select")

    @property
    @pulumi.getter
    def where(self) -> Optional[str]:
        """
        A filter that specifies all the NRDB events that are considered in this SLI (e.g, those that refer to a particular entity).
        a particular entity and were successful).
        a particular entity and returned an error).
        """
        return pulumi.get(self, "where")


@pulumi.output_type
class ServiceLevelEventsValidEventsSelect(dict):
    def __init__(__self__, *,
                 function: str,
                 attribute: Optional[str] = None,
                 threshold: Optional[float] = None):
        """
        :param str function: The function to use in the SELECT clause. Valid values are `COUNT` and `SUM`.
        :param str attribute: The event attribute to use in the SELECT clause.
        """
        pulumi.set(__self__, "function", function)
        if attribute is not None:
            pulumi.set(__self__, "attribute", attribute)
        if threshold is not None:
            pulumi.set(__self__, "threshold", threshold)

    @property
    @pulumi.getter
    def function(self) -> str:
        """
        The function to use in the SELECT clause. Valid values are `COUNT` and `SUM`.
        """
        return pulumi.get(self, "function")

    @property
    @pulumi.getter
    def attribute(self) -> Optional[str]:
        """
        The event attribute to use in the SELECT clause.
        """
        return pulumi.get(self, "attribute")

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


@pulumi.output_type
class ServiceLevelObjective(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "timeWindow":
            suggest = "time_window"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceLevelObjective. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceLevelObjective.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceLevelObjective.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 target: float,
                 time_window: 'outputs.ServiceLevelObjectiveTimeWindow',
                 description: Optional[str] = None,
                 name: Optional[str] = None):
        """
        :param float target: The target of the objective, valid values between `0` and `100`. Up to 5 decimals accepted.
        :param 'ServiceLevelObjectiveTimeWindowArgs' time_window: Time window is the period of the objective.
        :param str description: The description of the SLI.
        :param str name: A short name for the SLI that will help anyone understand what it is about.
        """
        pulumi.set(__self__, "target", target)
        pulumi.set(__self__, "time_window", time_window)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter
    def target(self) -> float:
        """
        The target of the objective, valid values between `0` and `100`. Up to 5 decimals accepted.
        """
        return pulumi.get(self, "target")

    @property
    @pulumi.getter(name="timeWindow")
    def time_window(self) -> 'outputs.ServiceLevelObjectiveTimeWindow':
        """
        Time window is the period of the objective.
        """
        return pulumi.get(self, "time_window")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        A short name for the SLI that will help anyone understand what it is about.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class ServiceLevelObjectiveTimeWindow(dict):
    def __init__(__self__, *,
                 rolling: 'outputs.ServiceLevelObjectiveTimeWindowRolling'):
        """
        :param 'ServiceLevelObjectiveTimeWindowRollingArgs' rolling: Rolling window.
        """
        pulumi.set(__self__, "rolling", rolling)

    @property
    @pulumi.getter
    def rolling(self) -> 'outputs.ServiceLevelObjectiveTimeWindowRolling':
        """
        Rolling window.
        """
        return pulumi.get(self, "rolling")


@pulumi.output_type
class ServiceLevelObjectiveTimeWindowRolling(dict):
    def __init__(__self__, *,
                 count: int,
                 unit: str):
        """
        :param int count: Valid values are `1`, `7` and `28`.
        :param str unit: The only supported value is `DAY`.
        """
        pulumi.set(__self__, "count", count)
        pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter
    def count(self) -> int:
        """
        Valid values are `1`, `7` and `28`.
        """
        return pulumi.get(self, "count")

    @property
    @pulumi.getter
    def unit(self) -> str:
        """
        The only supported value is `DAY`.
        """
        return pulumi.get(self, "unit")


@pulumi.output_type
class WorkflowDestination(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "channelId":
            suggest = "channel_id"
        elif key == "notificationTriggers":
            suggest = "notification_triggers"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WorkflowDestination. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WorkflowDestination.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WorkflowDestination.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 channel_id: str,
                 name: Optional[str] = None,
                 notification_triggers: Optional[Sequence[str]] = None,
                 type: Optional[str] = None):
        """
        :param str channel_id: Id of a notification_channel to use for notifications. Please note that you have to use a 
               **notification** channel, not an `alert_channel`.
        :param str name: The name of the workflow.
        :param Sequence[str] notification_triggers: Issue events to notify on. The value is a list of possible issue events. See Notification Triggers below for details.
        :param str type: Type of the filter. Please just set this field to `FILTER`. The field is likely to be deprecated/removed in the near future.
        """
        pulumi.set(__self__, "channel_id", channel_id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if notification_triggers is not None:
            pulumi.set(__self__, "notification_triggers", notification_triggers)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="channelId")
    def channel_id(self) -> str:
        """
        Id of a notification_channel to use for notifications. Please note that you have to use a 
        **notification** channel, not an `alert_channel`.
        """
        return pulumi.get(self, "channel_id")

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

    @property
    @pulumi.getter(name="notificationTriggers")
    def notification_triggers(self) -> Optional[Sequence[str]]:
        """
        Issue events to notify on. The value is a list of possible issue events. See Notification Triggers below for details.
        """
        return pulumi.get(self, "notification_triggers")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        Type of the filter. Please just set this field to `FILTER`. The field is likely to be deprecated/removed in the near future.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class WorkflowEnrichments(dict):
    def __init__(__self__, *,
                 nrqls: Sequence['outputs.WorkflowEnrichmentsNrql']):
        """
        :param Sequence['WorkflowEnrichmentsNrqlArgs'] nrqls: a wrapper block
        """
        pulumi.set(__self__, "nrqls", nrqls)

    @property
    @pulumi.getter
    def nrqls(self) -> Sequence['outputs.WorkflowEnrichmentsNrql']:
        """
        a wrapper block
        """
        return pulumi.get(self, "nrqls")


@pulumi.output_type
class WorkflowEnrichmentsNrql(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accountId":
            suggest = "account_id"
        elif key == "enrichmentId":
            suggest = "enrichment_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WorkflowEnrichmentsNrql. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WorkflowEnrichmentsNrql.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WorkflowEnrichmentsNrql.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 configurations: Sequence['outputs.WorkflowEnrichmentsNrqlConfiguration'],
                 name: str,
                 account_id: Optional[int] = None,
                 enrichment_id: Optional[str] = None,
                 type: Optional[str] = None):
        """
        :param Sequence['WorkflowEnrichmentsNrqlConfigurationArgs'] configurations: Another wrapper block
        :param str name: The name of the workflow.
        :param int account_id: Determines the New Relic account in which the workflow is created. Defaults to the account defined in the provider section.
        :param str type: Type of the filter. Please just set this field to `FILTER`. The field is likely to be deprecated/removed in the near future.
        """
        pulumi.set(__self__, "configurations", configurations)
        pulumi.set(__self__, "name", name)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)
        if enrichment_id is not None:
            pulumi.set(__self__, "enrichment_id", enrichment_id)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def configurations(self) -> Sequence['outputs.WorkflowEnrichmentsNrqlConfiguration']:
        """
        Another wrapper block
        """
        return pulumi.get(self, "configurations")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[int]:
        """
        Determines the New Relic account in which the workflow is created. Defaults to the account defined in the provider section.
        """
        return pulumi.get(self, "account_id")

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

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        Type of the filter. Please just set this field to `FILTER`. The field is likely to be deprecated/removed in the near future.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class WorkflowEnrichmentsNrqlConfiguration(dict):
    def __init__(__self__, *,
                 query: str):
        """
        :param str query: An NRQL query to run
        """
        pulumi.set(__self__, "query", query)

    @property
    @pulumi.getter
    def query(self) -> str:
        """
        An NRQL query to run
        """
        return pulumi.get(self, "query")


@pulumi.output_type
class WorkflowIssuesFilter(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "filterId":
            suggest = "filter_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WorkflowIssuesFilter. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WorkflowIssuesFilter.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WorkflowIssuesFilter.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 name: str,
                 type: str,
                 filter_id: Optional[str] = None,
                 predicates: Optional[Sequence['outputs.WorkflowIssuesFilterPredicate']] = None):
        """
        :param str name: The name of the workflow.
        :param str type: Type of the filter. Please just set this field to `FILTER`. The field is likely to be deprecated/removed in the near future.
        :param Sequence['WorkflowIssuesFilterPredicateArgs'] predicates: A condition an issue event should satisfy to be processed by the workflow
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "type", type)
        if filter_id is not None:
            pulumi.set(__self__, "filter_id", filter_id)
        if predicates is not None:
            pulumi.set(__self__, "predicates", predicates)

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

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of the filter. Please just set this field to `FILTER`. The field is likely to be deprecated/removed in the near future.
        """
        return pulumi.get(self, "type")

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

    @property
    @pulumi.getter
    def predicates(self) -> Optional[Sequence['outputs.WorkflowIssuesFilterPredicate']]:
        """
        A condition an issue event should satisfy to be processed by the workflow
        """
        return pulumi.get(self, "predicates")


@pulumi.output_type
class WorkflowIssuesFilterPredicate(dict):
    def __init__(__self__, *,
                 attribute: str,
                 operator: str,
                 values: Sequence[str]):
        """
        :param str attribute: Issue event attribute to check
        :param str operator: An operator to use to compare the attribute with the provided `values`, see supported operators below
        :param Sequence[str] values: The `attribute` must match **any** of the values in this list
        """
        pulumi.set(__self__, "attribute", attribute)
        pulumi.set(__self__, "operator", operator)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def attribute(self) -> str:
        """
        Issue event attribute to check
        """
        return pulumi.get(self, "attribute")

    @property
    @pulumi.getter
    def operator(self) -> str:
        """
        An operator to use to compare the attribute with the provided `values`, see supported operators below
        """
        return pulumi.get(self, "operator")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        """
        The `attribute` must match **any** of the values in this list
        """
        return pulumi.get(self, "values")


@pulumi.output_type
class GetAlertChannelConfigResult(dict):
    def __init__(__self__, *,
                 api_key: Optional[str] = None,
                 auth_password: Optional[str] = None,
                 auth_type: Optional[str] = None,
                 auth_username: Optional[str] = None,
                 base_url: Optional[str] = None,
                 channel: Optional[str] = None,
                 headers: Optional[Mapping[str, str]] = None,
                 include_json_attachment: Optional[str] = None,
                 key: Optional[str] = None,
                 payload: Optional[Mapping[str, str]] = None,
                 payload_string: Optional[str] = None,
                 payload_type: Optional[str] = None,
                 recipients: Optional[str] = None,
                 region: Optional[str] = None,
                 route_key: Optional[str] = None,
                 service_key: Optional[str] = None,
                 tags: Optional[str] = None,
                 teams: Optional[str] = None,
                 url: Optional[str] = None,
                 user_id: Optional[str] = None):
        if api_key is not None:
            pulumi.set(__self__, "api_key", api_key)
        if auth_password is not None:
            pulumi.set(__self__, "auth_password", auth_password)
        if auth_type is not None:
            pulumi.set(__self__, "auth_type", auth_type)
        if auth_username is not None:
            pulumi.set(__self__, "auth_username", auth_username)
        if base_url is not None:
            pulumi.set(__self__, "base_url", base_url)
        if channel is not None:
            pulumi.set(__self__, "channel", channel)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if include_json_attachment is not None:
            pulumi.set(__self__, "include_json_attachment", include_json_attachment)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if payload is not None:
            pulumi.set(__self__, "payload", payload)
        if payload_string is not None:
            pulumi.set(__self__, "payload_string", payload_string)
        if payload_type is not None:
            pulumi.set(__self__, "payload_type", payload_type)
        if recipients is not None:
            pulumi.set(__self__, "recipients", recipients)
        if region is not None:
            pulumi.set(__self__, "region", region)
        if route_key is not None:
            pulumi.set(__self__, "route_key", route_key)
        if service_key is not None:
            pulumi.set(__self__, "service_key", service_key)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if teams is not None:
            pulumi.set(__self__, "teams", teams)
        if url is not None:
            pulumi.set(__self__, "url", url)
        if user_id is not None:
            pulumi.set(__self__, "user_id", user_id)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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


@pulumi.output_type
class GetTestGrokPatternTestGrokResult(dict):
    def __init__(__self__, *,
                 attributes: Sequence['outputs.GetTestGrokPatternTestGrokAttributeResult'],
                 log_line: str,
                 matched: bool):
        """
        :param Sequence['GetTestGrokPatternTestGrokAttributeArgs'] attributes: Nested list containing information about any attributes that were extracted.
        :param str log_line: The log line that was tested against.
        :param bool matched: Whether the Grok pattern matched.
        """
        pulumi.set(__self__, "attributes", attributes)
        pulumi.set(__self__, "log_line", log_line)
        pulumi.set(__self__, "matched", matched)

    @property
    @pulumi.getter
    def attributes(self) -> Sequence['outputs.GetTestGrokPatternTestGrokAttributeResult']:
        """
        Nested list containing information about any attributes that were extracted.
        """
        return pulumi.get(self, "attributes")

    @property
    @pulumi.getter(name="logLine")
    def log_line(self) -> str:
        """
        The log line that was tested against.
        """
        return pulumi.get(self, "log_line")

    @property
    @pulumi.getter
    def matched(self) -> bool:
        """
        Whether the Grok pattern matched.
        """
        return pulumi.get(self, "matched")


@pulumi.output_type
class GetTestGrokPatternTestGrokAttributeResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: The attribute name.
        :param str value: A string representation of the extracted value (which might not be a String).
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

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

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        A string representation of the extracted value (which might not be a String).
        """
        return pulumi.get(self, "value")


