# 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

__all__ = [
    'AlertChannelConfigArgs',
    'AlertConditionTermArgs',
    'AlertMutingRuleConditionArgs',
    'AlertMutingRuleConditionConditionArgs',
    'AlertMutingRuleScheduleArgs',
    'EntityTagsTagArgs',
    'InfraAlertConditionCriticalArgs',
    'InfraAlertConditionWarningArgs',
    'NotificationChannelPropertyArgs',
    'NotificationDestinationAuthBasicArgs',
    'NotificationDestinationAuthTokenArgs',
    'NotificationDestinationPropertyArgs',
    'NrqlAlertConditionCriticalArgs',
    'NrqlAlertConditionNrqlArgs',
    'NrqlAlertConditionTermArgs',
    'NrqlAlertConditionWarningArgs',
    'ObfuscationRuleActionArgs',
    'OneDashboardPageArgs',
    'OneDashboardPageWidgetAreaArgs',
    'OneDashboardPageWidgetAreaNrqlQueryArgs',
    'OneDashboardPageWidgetBarArgs',
    'OneDashboardPageWidgetBarNrqlQueryArgs',
    'OneDashboardPageWidgetBillboardArgs',
    'OneDashboardPageWidgetBillboardNrqlQueryArgs',
    'OneDashboardPageWidgetBulletArgs',
    'OneDashboardPageWidgetBulletNrqlQueryArgs',
    'OneDashboardPageWidgetFunnelArgs',
    'OneDashboardPageWidgetFunnelNrqlQueryArgs',
    'OneDashboardPageWidgetHeatmapArgs',
    'OneDashboardPageWidgetHeatmapNrqlQueryArgs',
    'OneDashboardPageWidgetHistogramArgs',
    'OneDashboardPageWidgetHistogramNrqlQueryArgs',
    'OneDashboardPageWidgetJsonArgs',
    'OneDashboardPageWidgetJsonNrqlQueryArgs',
    'OneDashboardPageWidgetLineArgs',
    'OneDashboardPageWidgetLineNrqlQueryArgs',
    'OneDashboardPageWidgetLogTableArgs',
    'OneDashboardPageWidgetLogTableNrqlQueryArgs',
    'OneDashboardPageWidgetMarkdownArgs',
    'OneDashboardPageWidgetPyArgs',
    'OneDashboardPageWidgetPyNrqlQueryArgs',
    'OneDashboardPageWidgetStackedBarArgs',
    'OneDashboardPageWidgetStackedBarNrqlQueryArgs',
    'OneDashboardPageWidgetTableArgs',
    'OneDashboardPageWidgetTableNrqlQueryArgs',
    'OneDashboardRawPageArgs',
    'OneDashboardRawPageWidgetArgs',
    'OneDashboardVariableArgs',
    'OneDashboardVariableItemArgs',
    'OneDashboardVariableNrqlQueryArgs',
    'ServiceLevelEventsArgs',
    'ServiceLevelEventsBadEventsArgs',
    'ServiceLevelEventsBadEventsSelectArgs',
    'ServiceLevelEventsGoodEventsArgs',
    'ServiceLevelEventsGoodEventsSelectArgs',
    'ServiceLevelEventsValidEventsArgs',
    'ServiceLevelEventsValidEventsSelectArgs',
    'ServiceLevelObjectiveArgs',
    'ServiceLevelObjectiveTimeWindowArgs',
    'ServiceLevelObjectiveTimeWindowRollingArgs',
    'WorkflowDestinationArgs',
    'WorkflowEnrichmentsArgs',
    'WorkflowEnrichmentsNrqlArgs',
    'WorkflowEnrichmentsNrqlConfigurationArgs',
    'WorkflowIssuesFilterArgs',
    'WorkflowIssuesFilterPredicateArgs',
    'GetEntityTagArgs',
]

@pulumi.input_type
class AlertChannelConfigArgs:
    def __init__(__self__, *,
                 api_key: Optional[pulumi.Input[str]] = None,
                 auth_password: Optional[pulumi.Input[str]] = None,
                 auth_type: Optional[pulumi.Input[str]] = None,
                 auth_username: Optional[pulumi.Input[str]] = None,
                 base_url: Optional[pulumi.Input[str]] = None,
                 channel: Optional[pulumi.Input[str]] = None,
                 headers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 headers_string: Optional[pulumi.Input[str]] = None,
                 include_json_attachment: Optional[pulumi.Input[str]] = None,
                 key: Optional[pulumi.Input[str]] = None,
                 payload: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                 payload_string: Optional[pulumi.Input[str]] = None,
                 payload_type: Optional[pulumi.Input[str]] = None,
                 recipients: Optional[pulumi.Input[str]] = None,
                 region: Optional[pulumi.Input[str]] = None,
                 route_key: Optional[pulumi.Input[str]] = None,
                 service_key: Optional[pulumi.Input[str]] = None,
                 tags: Optional[pulumi.Input[str]] = None,
                 teams: Optional[pulumi.Input[str]] = None,
                 url: Optional[pulumi.Input[str]] = None,
                 user_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] api_key: The API key for integrating with OpsGenie.
        :param pulumi.Input[str] auth_password: Specifies an authentication password for use with a channel.  Supported by the `webhook` channel type.
        :param pulumi.Input[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 pulumi.Input[str] auth_username: Specifies an authentication username for use with a channel.  Supported by the `webhook` channel type.
        :param pulumi.Input[str] base_url: The base URL of the webhook destination.
        :param pulumi.Input[str] channel: The Slack channel to send notifications to.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] headers: A map of key/value pairs that represents extra HTTP headers to be sent along with the webhook payload.
        :param pulumi.Input[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 pulumi.Input[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 pulumi.Input[str] key: The key for integrating with VictorOps.
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] payload: A map of key/value pairs that represents the webhook payload.  Must provide `payload_type` if setting this argument.
        :param pulumi.Input[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 pulumi.Input[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 pulumi.Input[str] recipients: Comma delimited list of email addresses.
        :param pulumi.Input[str] region: The data center region to store your data.  Valid values are `US` and `EU`.  Default is `US`.
        :param pulumi.Input[str] route_key: The route key for integrating with VictorOps.
        :param pulumi.Input[str] service_key: Specifies the service key for integrating with Pagerduty.
        :param pulumi.Input[str] tags: A set of tags for targeting notifications. Multiple values are comma separated.
        :param pulumi.Input[str] teams: A set of teams for targeting notifications. Multiple values are comma separated.
        :param pulumi.Input[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[pulumi.Input[str]]:
        """
        The API key for integrating with OpsGenie.
        """
        return pulumi.get(self, "api_key")

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

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

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

    @property
    @pulumi.getter(name="authType")
    def auth_type(self) -> Optional[pulumi.Input[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")

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

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

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

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

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

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

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

    @property
    @pulumi.getter
    def headers(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[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")

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

    @property
    @pulumi.getter(name="headersString")
    def headers_string(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="includeJsonAttachment")
    def include_json_attachment(self) -> Optional[pulumi.Input[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")

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

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

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

    @property
    @pulumi.getter
    def payload(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[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")

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

    @property
    @pulumi.getter(name="payloadString")
    def payload_string(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="payloadType")
    def payload_type(self) -> Optional[pulumi.Input[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")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class AlertConditionTermArgs:
    def __init__(__self__, *,
                 duration: pulumi.Input[int],
                 threshold: pulumi.Input[float],
                 time_function: pulumi.Input[str],
                 operator: Optional[pulumi.Input[str]] = None,
                 priority: Optional[pulumi.Input[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) -> pulumi.Input[int]:
        return pulumi.get(self, "duration")

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class AlertMutingRuleConditionArgs:
    def __init__(__self__, *,
                 conditions: pulumi.Input[Sequence[pulumi.Input['AlertMutingRuleConditionConditionArgs']]],
                 operator: pulumi.Input[str]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['AlertMutingRuleConditionConditionArgs']]] conditions: The individual MutingRuleConditions within the group. See Nested conditions blocks below for details.
        :param pulumi.Input[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) -> pulumi.Input[Sequence[pulumi.Input['AlertMutingRuleConditionConditionArgs']]]:
        """
        The individual MutingRuleConditions within the group. See Nested conditions blocks below for details.
        """
        return pulumi.get(self, "conditions")

    @conditions.setter
    def conditions(self, value: pulumi.Input[Sequence[pulumi.Input['AlertMutingRuleConditionConditionArgs']]]):
        pulumi.set(self, "conditions", value)

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

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


@pulumi.input_type
class AlertMutingRuleConditionConditionArgs:
    def __init__(__self__, *,
                 attribute: pulumi.Input[str],
                 operator: pulumi.Input[str],
                 values: pulumi.Input[Sequence[pulumi.Input[str]]]):
        """
        :param pulumi.Input[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 pulumi.Input[str] operator: The operator used to combine all the MutingRuleConditions within the group. Valid values are `AND`, `OR`.
        :param pulumi.Input[Sequence[pulumi.Input[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) -> pulumi.Input[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")

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

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

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

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

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


@pulumi.input_type
class AlertMutingRuleScheduleArgs:
    def __init__(__self__, *,
                 time_zone: pulumi.Input[str],
                 end_repeat: Optional[pulumi.Input[str]] = None,
                 end_time: Optional[pulumi.Input[str]] = None,
                 repeat: Optional[pulumi.Input[str]] = None,
                 repeat_count: Optional[pulumi.Input[int]] = None,
                 start_time: Optional[pulumi.Input[str]] = None,
                 weekly_repeat_days: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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 pulumi.Input[str] repeat: The frequency the muting rule schedule repeats. If it does not repeat, omit this field. Options are DAILY, WEEKLY, MONTHLY
        :param pulumi.Input[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 pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[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) -> pulumi.Input[str]:
        return pulumi.get(self, "time_zone")

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

    @property
    @pulumi.getter(name="endRepeat")
    def end_repeat(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="endTime")
    def end_time(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def repeat(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="repeatCount")
    def repeat_count(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="startTime")
    def start_time(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="weeklyRepeatDays")
    def weekly_repeat_days(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[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")

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


@pulumi.input_type
class EntityTagsTagArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[str],
                 values: pulumi.Input[Sequence[pulumi.Input[str]]]):
        """
        :param pulumi.Input[str] key: The tag key.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The tag values.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "values", values)

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

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

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

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


@pulumi.input_type
class InfraAlertConditionCriticalArgs:
    def __init__(__self__, *,
                 duration: pulumi.Input[int],
                 time_function: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[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) -> pulumi.Input[int]:
        return pulumi.get(self, "duration")

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

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

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

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

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


@pulumi.input_type
class InfraAlertConditionWarningArgs:
    def __init__(__self__, *,
                 duration: pulumi.Input[int],
                 time_function: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[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) -> pulumi.Input[int]:
        return pulumi.get(self, "duration")

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

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

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

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

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


@pulumi.input_type
class NotificationChannelPropertyArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[str],
                 value: pulumi.Input[str],
                 display_value: Optional[pulumi.Input[str]] = None,
                 label: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] key: The notification property key.
        :param pulumi.Input[str] value: The notification property value.
        :param pulumi.Input[str] display_value: The notification property display value.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The notification property key.
        """
        return pulumi.get(self, "key")

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

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

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

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

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

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

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


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

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

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

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

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


@pulumi.input_type
class NotificationDestinationAuthTokenArgs:
    def __init__(__self__, *,
                 token: pulumi.Input[str],
                 prefix: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] token: Specifies the token for integrating.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        Specifies the token for integrating.
        """
        return pulumi.get(self, "token")

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

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

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


@pulumi.input_type
class NotificationDestinationPropertyArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[str],
                 value: pulumi.Input[str],
                 display_value: Optional[pulumi.Input[str]] = None,
                 label: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] key: The notification property key.
        :param pulumi.Input[str] value: The notification property value.
        :param pulumi.Input[str] display_value: The notification property display value.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The notification property key.
        """
        return pulumi.get(self, "key")

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

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

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

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

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

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

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


@pulumi.input_type
class NrqlAlertConditionCriticalArgs:
    def __init__(__self__, *,
                 threshold: pulumi.Input[float],
                 duration: Optional[pulumi.Input[int]] = None,
                 operator: Optional[pulumi.Input[str]] = None,
                 threshold_duration: Optional[pulumi.Input[int]] = None,
                 threshold_occurrences: Optional[pulumi.Input[str]] = None,
                 time_function: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "threshold", threshold)
        if duration is not None:
            warnings.warn("""use `threshold_duration` attribute instead""", DeprecationWarning)
            pulumi.log.warn("""duration is deprecated: use `threshold_duration` attribute instead""")
        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:
            warnings.warn("""use `threshold_occurrences` attribute instead""", DeprecationWarning)
            pulumi.log.warn("""time_function is deprecated: use `threshold_occurrences` attribute instead""")
        if time_function is not None:
            pulumi.set(__self__, "time_function", time_function)

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class NrqlAlertConditionNrqlArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 evaluation_offset: Optional[pulumi.Input[int]] = None,
                 since_value: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "query", query)
        if evaluation_offset is not None:
            warnings.warn("""use `aggregation_method` attribute instead""", DeprecationWarning)
            pulumi.log.warn("""evaluation_offset is deprecated: use `aggregation_method` attribute instead""")
        if evaluation_offset is not None:
            pulumi.set(__self__, "evaluation_offset", evaluation_offset)
        if since_value is not None:
            warnings.warn("""use `aggregation_method` attribute instead""", DeprecationWarning)
            pulumi.log.warn("""since_value is deprecated: use `aggregation_method` attribute instead""")
        if since_value is not None:
            pulumi.set(__self__, "since_value", since_value)

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

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

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

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

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

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


@pulumi.input_type
class NrqlAlertConditionTermArgs:
    def __init__(__self__, *,
                 threshold: pulumi.Input[float],
                 duration: Optional[pulumi.Input[int]] = None,
                 operator: Optional[pulumi.Input[str]] = None,
                 priority: Optional[pulumi.Input[str]] = None,
                 threshold_duration: Optional[pulumi.Input[int]] = None,
                 threshold_occurrences: Optional[pulumi.Input[str]] = None,
                 time_function: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "threshold", threshold)
        if duration is not None:
            warnings.warn("""use `threshold_duration` attribute instead""", DeprecationWarning)
            pulumi.log.warn("""duration is deprecated: use `threshold_duration` attribute instead""")
        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:
            warnings.warn("""use `threshold_occurrences` attribute instead""", DeprecationWarning)
            pulumi.log.warn("""time_function is deprecated: use `threshold_occurrences` attribute instead""")
        if time_function is not None:
            pulumi.set(__self__, "time_function", time_function)

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

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

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class NrqlAlertConditionWarningArgs:
    def __init__(__self__, *,
                 threshold: pulumi.Input[float],
                 duration: Optional[pulumi.Input[int]] = None,
                 operator: Optional[pulumi.Input[str]] = None,
                 threshold_duration: Optional[pulumi.Input[int]] = None,
                 threshold_occurrences: Optional[pulumi.Input[str]] = None,
                 time_function: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "threshold", threshold)
        if duration is not None:
            warnings.warn("""use `threshold_duration` attribute instead""", DeprecationWarning)
            pulumi.log.warn("""duration is deprecated: use `threshold_duration` attribute instead""")
        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:
            warnings.warn("""use `threshold_occurrences` attribute instead""", DeprecationWarning)
            pulumi.log.warn("""time_function is deprecated: use `threshold_occurrences` attribute instead""")
        if time_function is not None:
            pulumi.set(__self__, "time_function", time_function)

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class ObfuscationRuleActionArgs:
    def __init__(__self__, *,
                 attributes: pulumi.Input[Sequence[pulumi.Input[str]]],
                 expression_id: pulumi.Input[str],
                 method: pulumi.Input[str]):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] attributes: Attribute names for action. An empty list applies the action to all the attributes.
        :param pulumi.Input[str] expression_id: Expression Id for action.
        :param pulumi.Input[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) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        Attribute names for action. An empty list applies the action to all the attributes.
        """
        return pulumi.get(self, "attributes")

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

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

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

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

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


@pulumi.input_type
class OneDashboardPageArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None,
                 guid: Optional[pulumi.Input[str]] = None,
                 widget_areas: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetAreaArgs']]]] = None,
                 widget_bars: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBarArgs']]]] = None,
                 widget_billboards: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBillboardArgs']]]] = None,
                 widget_bullets: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBulletArgs']]]] = None,
                 widget_funnels: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetFunnelArgs']]]] = None,
                 widget_heatmaps: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetHeatmapArgs']]]] = None,
                 widget_histograms: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetHistogramArgs']]]] = None,
                 widget_jsons: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetJsonArgs']]]] = None,
                 widget_lines: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetLineArgs']]]] = None,
                 widget_log_tables: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetLogTableArgs']]]] = None,
                 widget_markdowns: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetMarkdownArgs']]]] = None,
                 widget_pies: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetPyArgs']]]] = None,
                 widget_stacked_bars: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetStackedBarArgs']]]] = None,
                 widget_tables: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetTableArgs']]]] = None):
        """
        :param pulumi.Input[str] name: The title of the dashboard.
        :param pulumi.Input[str] description: Brief text describing the dashboard.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The title of the dashboard.
        """
        return pulumi.get(self, "name")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetAreaArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetAreaNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetAreaNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetAreaNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetAreaNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetBarArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBarNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 filter_current_dashboard: Optional[pulumi.Input[bool]] = None,
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 linked_entity_guids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBarNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[bool] filter_current_dashboard: (Optional) Use this item to filter the current dashboard.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[str]]] linked_entity_guids: (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        :param pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 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) -> pulumi.Input[int]:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBarNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetBarNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetBillboardArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBillboardNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 critical: Optional[pulumi.Input[str]] = None,
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 warning: Optional[pulumi.Input[str]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBillboardNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[str] critical: (Optional) Threshold above which the displayed value will be styled with a red color.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[str] warning: (Optional) Threshold above which the displayed value will be styled with a yellow color.
        :param pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        if critical is not None:
            pulumi.set(__self__, "critical", critical)
        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 warning is not None:
            pulumi.set(__self__, "warning", warning)
        if width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBillboardNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetBillboardNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetBulletArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 limit: pulumi.Input[float],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBulletNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[float] limit: (Required) Visualization limit for the widget.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBulletNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[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__, "limit", limit)
        pulumi.set(__self__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetBulletNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetBulletNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetFunnelArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetFunnelNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetFunnelNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetFunnelNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetFunnelNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetHeatmapArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetHeatmapNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 filter_current_dashboard: Optional[pulumi.Input[bool]] = None,
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 linked_entity_guids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetHeatmapNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[bool] filter_current_dashboard: (Optional) Use this item to filter the current dashboard.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[str]]] linked_entity_guids: (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        :param pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 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) -> pulumi.Input[int]:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetHeatmapNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetHeatmapNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetHistogramArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetHistogramNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetHistogramNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetHistogramNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetHistogramNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetJsonArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetJsonNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetJsonNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetJsonNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetJsonNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetLineArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetLineNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetLineNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetLineNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetLineNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetLogTableArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetLogTableNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetLogTableNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetLogTableNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetLogTableNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetMarkdownArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 text: Optional[pulumi.Input[str]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[str] text: (Required) The markdown source to be rendered in the widget.
        :param pulumi.Input[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__, "row", row)
        pulumi.set(__self__, "title", title)
        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 text is not None:
            pulumi.set(__self__, "text", text)
        if width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def text(self) -> Optional[pulumi.Input[str]]:
        """
        (Required) The markdown source to be rendered in the widget.
        """
        return pulumi.get(self, "text")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetPyArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetPyNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 filter_current_dashboard: Optional[pulumi.Input[bool]] = None,
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 linked_entity_guids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetPyNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[bool] filter_current_dashboard: (Optional) Use this item to filter the current dashboard.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[str]]] linked_entity_guids: (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        :param pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 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) -> pulumi.Input[int]:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetPyNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetPyNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetStackedBarArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetStackedBarNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetStackedBarNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 width is not None:
            pulumi.set(__self__, "width", width)

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

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetStackedBarNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetStackedBarNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardPageWidgetTableArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 nrql_queries: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetTableNrqlQueryArgs']]],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 filter_current_dashboard: Optional[pulumi.Input[bool]] = None,
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 ignore_time_range: Optional[pulumi.Input[bool]] = None,
                 linked_entity_guids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetTableNrqlQueryArgs']]] nrql_queries: (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[bool] filter_current_dashboard: (Optional) Use this item to filter the current dashboard.
        :param pulumi.Input[int] height: (Optional) Height of the widget.  Valid values are `1` to `12` inclusive.  Defaults to `3`.
        :param pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[str]]] linked_entity_guids: (Optional) Related entity GUIDs. Currently only supports Dashboard entity GUIDs.
        :param pulumi.Input[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__, "nrql_queries", nrql_queries)
        pulumi.set(__self__, "row", row)
        pulumi.set(__self__, "title", title)
        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 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) -> pulumi.Input[int]:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

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

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

    @nrql_queries.setter
    def nrql_queries(self, value: pulumi.Input[Sequence[pulumi.Input['OneDashboardPageWidgetTableNrqlQueryArgs']]]):
        pulumi.set(self, "nrql_queries", value)

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

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="ignoreTimeRange")
    def ignore_time_range(self) -> Optional[pulumi.Input[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")

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

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

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

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

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


@pulumi.input_type
class OneDashboardPageWidgetTableNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class OneDashboardRawPageArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None,
                 guid: Optional[pulumi.Input[str]] = None,
                 widgets: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardRawPageWidgetArgs']]]] = None):
        """
        :param pulumi.Input[str] name: The title of the dashboard.
        :param pulumi.Input[str] description: Brief text describing the dashboard.
        :param pulumi.Input[str] guid: The unique entity identifier of the dashboard page in New Relic.
        :param pulumi.Input[Sequence[pulumi.Input['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) -> pulumi.Input[str]:
        """
        The title of the dashboard.
        """
        return pulumi.get(self, "name")

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

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

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

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

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

    @property
    @pulumi.getter
    def widgets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardRawPageWidgetArgs']]]]:
        """
        (Optional) A nested block that describes a widget. See Nested widget blocks below for details.
        """
        return pulumi.get(self, "widgets")

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


@pulumi.input_type
class OneDashboardRawPageWidgetArgs:
    def __init__(__self__, *,
                 column: pulumi.Input[int],
                 configuration: pulumi.Input[str],
                 row: pulumi.Input[int],
                 title: pulumi.Input[str],
                 visualization_id: pulumi.Input[str],
                 height: Optional[pulumi.Input[int]] = None,
                 id: Optional[pulumi.Input[str]] = None,
                 linked_entity_guids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 width: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] column: (Required) Column position of widget from top left, starting at `1`.
        :param pulumi.Input[str] configuration: (Required) The configuration of the widget.
        :param pulumi.Input[int] row: (Required) Row position of widget from top left, starting at `1`.
        :param pulumi.Input[str] title: (Required) A title for the widget.
        :param pulumi.Input[str] visualization_id: (Required) The visualization ID of the widget
        :param pulumi.Input[int] height: (Optional) Height of the widget. Valid values are `1` to `12` inclusive. Defaults to `3`.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] linked_entity_guids: (Optional) Related entity GUIDs.
        :param pulumi.Input[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) -> pulumi.Input[int]:
        """
        (Required) Column position of widget from top left, starting at `1`.
        """
        return pulumi.get(self, "column")

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

    @property
    @pulumi.getter
    def configuration(self) -> pulumi.Input[str]:
        """
        (Required) The configuration of the widget.
        """
        return pulumi.get(self, "configuration")

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

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

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

    @property
    @pulumi.getter
    def title(self) -> pulumi.Input[str]:
        """
        (Required) A title for the widget.
        """
        return pulumi.get(self, "title")

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

    @property
    @pulumi.getter(name="visualizationId")
    def visualization_id(self) -> pulumi.Input[str]:
        """
        (Required) The visualization ID of the widget
        """
        return pulumi.get(self, "visualization_id")

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

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

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

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

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

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

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

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

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


@pulumi.input_type
class OneDashboardVariableArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 replacement_strategy: pulumi.Input[str],
                 title: pulumi.Input[str],
                 type: pulumi.Input[str],
                 default_values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 is_multi_selection: Optional[pulumi.Input[bool]] = None,
                 items: Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardVariableItemArgs']]]] = None,
                 nrql_query: Optional[pulumi.Input['OneDashboardVariableNrqlQueryArgs']] = None):
        """
        :param pulumi.Input[str] name: The title of the dashboard.
        :param pulumi.Input[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 pulumi.Input[str] title: (Optional) A human-friendly display string for this value.
        :param pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[str]]] default_values: (Optional) A list of default values for this variable.
        :param pulumi.Input[bool] is_multi_selection: (Optional) Indicates whether this variable supports multiple selection or not. Only applies to variables of type `nrql` or `enum`.
        :param pulumi.Input[Sequence[pulumi.Input['OneDashboardVariableItemArgs']]] items: (Optional) List of possible values for variables of type `enum`. See Nested item blocks below for details.
        :param pulumi.Input['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) -> pulumi.Input[str]:
        """
        The title of the dashboard.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="replacementStrategy")
    def replacement_strategy(self) -> pulumi.Input[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")

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

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

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

    @property
    @pulumi.getter
    def type(self) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="defaultValues")
    def default_values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        (Optional) A list of default values for this variable.
        """
        return pulumi.get(self, "default_values")

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

    @property
    @pulumi.getter(name="isMultiSelection")
    def is_multi_selection(self) -> Optional[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def items(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OneDashboardVariableItemArgs']]]]:
        """
        (Optional) List of possible values for variables of type `enum`. See Nested item blocks below for details.
        """
        return pulumi.get(self, "items")

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

    @property
    @pulumi.getter(name="nrqlQuery")
    def nrql_query(self) -> Optional[pulumi.Input['OneDashboardVariableNrqlQueryArgs']]:
        """
        (Optional) Configuration for variables of type `nrql`. See Nested nrql\\_query blocks for details.
        """
        return pulumi.get(self, "nrql_query")

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


@pulumi.input_type
class OneDashboardVariableItemArgs:
    def __init__(__self__, *,
                 value: pulumi.Input[str],
                 title: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] value: (Required) A possible variable value
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        (Required) A possible variable value
        """
        return pulumi.get(self, "value")

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

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

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


@pulumi.input_type
class OneDashboardVariableNrqlQueryArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str],
                 account_ids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None):
        """
        :param pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="accountIds")
    def account_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]:
        return pulumi.get(self, "account_ids")

    @account_ids.setter
    def account_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]):
        pulumi.set(self, "account_ids", value)


@pulumi.input_type
class ServiceLevelEventsArgs:
    def __init__(__self__, *,
                 account_id: pulumi.Input[int],
                 valid_events: pulumi.Input['ServiceLevelEventsValidEventsArgs'],
                 bad_events: Optional[pulumi.Input['ServiceLevelEventsBadEventsArgs']] = None,
                 good_events: Optional[pulumi.Input['ServiceLevelEventsGoodEventsArgs']] = None):
        """
        :param pulumi.Input[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 pulumi.Input['ServiceLevelEventsValidEventsArgs'] valid_events: The definition of valid requests.
        :param pulumi.Input['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 pulumi.Input['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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter(name="validEvents")
    def valid_events(self) -> pulumi.Input['ServiceLevelEventsValidEventsArgs']:
        """
        The definition of valid requests.
        """
        return pulumi.get(self, "valid_events")

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

    @property
    @pulumi.getter(name="badEvents")
    def bad_events(self) -> Optional[pulumi.Input['ServiceLevelEventsBadEventsArgs']]:
        """
        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")

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

    @property
    @pulumi.getter(name="goodEvents")
    def good_events(self) -> Optional[pulumi.Input['ServiceLevelEventsGoodEventsArgs']]:
        """
        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")

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


@pulumi.input_type
class ServiceLevelEventsBadEventsArgs:
    def __init__(__self__, *,
                 from_: pulumi.Input[str],
                 select: Optional[pulumi.Input['ServiceLevelEventsBadEventsSelectArgs']] = None,
                 where: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] from_: The event type where NRDB data will be fetched from.
        :param pulumi.Input['ServiceLevelEventsBadEventsSelectArgs'] select: The NRQL SELECT clause to aggregate events.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The event type where NRDB data will be fetched from.
        """
        return pulumi.get(self, "from_")

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

    @property
    @pulumi.getter
    def select(self) -> Optional[pulumi.Input['ServiceLevelEventsBadEventsSelectArgs']]:
        """
        The NRQL SELECT clause to aggregate events.
        """
        return pulumi.get(self, "select")

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

    @property
    @pulumi.getter
    def where(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class ServiceLevelEventsBadEventsSelectArgs:
    def __init__(__self__, *,
                 function: pulumi.Input[str],
                 attribute: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] function: The function to use in the SELECT clause. Valid values are `COUNT`and `SUM`.
        :param pulumi.Input[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)

    @property
    @pulumi.getter
    def function(self) -> pulumi.Input[str]:
        """
        The function to use in the SELECT clause. Valid values are `COUNT`and `SUM`.
        """
        return pulumi.get(self, "function")

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

    @property
    @pulumi.getter
    def attribute(self) -> Optional[pulumi.Input[str]]:
        """
        The event attribute to use in the SELECT clause.
        """
        return pulumi.get(self, "attribute")

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


@pulumi.input_type
class ServiceLevelEventsGoodEventsArgs:
    def __init__(__self__, *,
                 from_: pulumi.Input[str],
                 select: Optional[pulumi.Input['ServiceLevelEventsGoodEventsSelectArgs']] = None,
                 where: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] from_: The event type where NRDB data will be fetched from.
        :param pulumi.Input['ServiceLevelEventsGoodEventsSelectArgs'] select: The NRQL SELECT clause to aggregate events.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The event type where NRDB data will be fetched from.
        """
        return pulumi.get(self, "from_")

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

    @property
    @pulumi.getter
    def select(self) -> Optional[pulumi.Input['ServiceLevelEventsGoodEventsSelectArgs']]:
        """
        The NRQL SELECT clause to aggregate events.
        """
        return pulumi.get(self, "select")

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

    @property
    @pulumi.getter
    def where(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class ServiceLevelEventsGoodEventsSelectArgs:
    def __init__(__self__, *,
                 function: pulumi.Input[str],
                 attribute: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] function: The function to use in the SELECT clause. Valid values are `COUNT`and `SUM`.
        :param pulumi.Input[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)

    @property
    @pulumi.getter
    def function(self) -> pulumi.Input[str]:
        """
        The function to use in the SELECT clause. Valid values are `COUNT`and `SUM`.
        """
        return pulumi.get(self, "function")

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

    @property
    @pulumi.getter
    def attribute(self) -> Optional[pulumi.Input[str]]:
        """
        The event attribute to use in the SELECT clause.
        """
        return pulumi.get(self, "attribute")

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


@pulumi.input_type
class ServiceLevelEventsValidEventsArgs:
    def __init__(__self__, *,
                 from_: pulumi.Input[str],
                 select: Optional[pulumi.Input['ServiceLevelEventsValidEventsSelectArgs']] = None,
                 where: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] from_: The event type where NRDB data will be fetched from.
        :param pulumi.Input['ServiceLevelEventsValidEventsSelectArgs'] select: The NRQL SELECT clause to aggregate events.
        :param pulumi.Input[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) -> pulumi.Input[str]:
        """
        The event type where NRDB data will be fetched from.
        """
        return pulumi.get(self, "from_")

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

    @property
    @pulumi.getter
    def select(self) -> Optional[pulumi.Input['ServiceLevelEventsValidEventsSelectArgs']]:
        """
        The NRQL SELECT clause to aggregate events.
        """
        return pulumi.get(self, "select")

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

    @property
    @pulumi.getter
    def where(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class ServiceLevelEventsValidEventsSelectArgs:
    def __init__(__self__, *,
                 function: pulumi.Input[str],
                 attribute: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] function: The function to use in the SELECT clause. Valid values are `COUNT`and `SUM`.
        :param pulumi.Input[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)

    @property
    @pulumi.getter
    def function(self) -> pulumi.Input[str]:
        """
        The function to use in the SELECT clause. Valid values are `COUNT`and `SUM`.
        """
        return pulumi.get(self, "function")

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

    @property
    @pulumi.getter
    def attribute(self) -> Optional[pulumi.Input[str]]:
        """
        The event attribute to use in the SELECT clause.
        """
        return pulumi.get(self, "attribute")

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


@pulumi.input_type
class ServiceLevelObjectiveArgs:
    def __init__(__self__, *,
                 target: pulumi.Input[float],
                 time_window: pulumi.Input['ServiceLevelObjectiveTimeWindowArgs'],
                 description: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[float] target: The target of the objective, valid values between `0` and `100`. Up to 5 decimals accepted.
        :param pulumi.Input['ServiceLevelObjectiveTimeWindowArgs'] time_window: Time window is the period of the objective.
        :param pulumi.Input[str] description: The description of the SLI.
        :param pulumi.Input[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) -> pulumi.Input[float]:
        """
        The target of the objective, valid values between `0` and `100`. Up to 5 decimals accepted.
        """
        return pulumi.get(self, "target")

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

    @property
    @pulumi.getter(name="timeWindow")
    def time_window(self) -> pulumi.Input['ServiceLevelObjectiveTimeWindowArgs']:
        """
        Time window is the period of the objective.
        """
        return pulumi.get(self, "time_window")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        The description of the SLI.
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        A short name for the SLI that will help anyone understand what it is about.
        """
        return pulumi.get(self, "name")

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


@pulumi.input_type
class ServiceLevelObjectiveTimeWindowArgs:
    def __init__(__self__, *,
                 rolling: pulumi.Input['ServiceLevelObjectiveTimeWindowRollingArgs']):
        """
        :param pulumi.Input['ServiceLevelObjectiveTimeWindowRollingArgs'] rolling: Rolling window.
        """
        pulumi.set(__self__, "rolling", rolling)

    @property
    @pulumi.getter
    def rolling(self) -> pulumi.Input['ServiceLevelObjectiveTimeWindowRollingArgs']:
        """
        Rolling window.
        """
        return pulumi.get(self, "rolling")

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


@pulumi.input_type
class ServiceLevelObjectiveTimeWindowRollingArgs:
    def __init__(__self__, *,
                 count: pulumi.Input[int],
                 unit: pulumi.Input[str]):
        """
        :param pulumi.Input[int] count: Valid values are `1`, `7` and `28`.
        :param pulumi.Input[str] unit: The only supported value is `DAY`.
        """
        pulumi.set(__self__, "count", count)
        pulumi.set(__self__, "unit", unit)

    @property
    @pulumi.getter
    def count(self) -> pulumi.Input[int]:
        """
        Valid values are `1`, `7` and `28`.
        """
        return pulumi.get(self, "count")

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

    @property
    @pulumi.getter
    def unit(self) -> pulumi.Input[str]:
        """
        The only supported value is `DAY`.
        """
        return pulumi.get(self, "unit")

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


@pulumi.input_type
class WorkflowDestinationArgs:
    def __init__(__self__, *,
                 channel_id: pulumi.Input[str],
                 name: Optional[pulumi.Input[str]] = None,
                 notification_triggers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[str] name: The name of the workflow.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] notification_triggers: Issue events to notify on. The value is a list of possible issue events. See Notification Triggers below for details.
        :param pulumi.Input[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) -> pulumi.Input[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")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the workflow.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="notificationTriggers")
    def notification_triggers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class WorkflowEnrichmentsArgs:
    def __init__(__self__, *,
                 nrqls: pulumi.Input[Sequence[pulumi.Input['WorkflowEnrichmentsNrqlArgs']]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['WorkflowEnrichmentsNrqlArgs']]] nrqls: a wrapper block
        """
        pulumi.set(__self__, "nrqls", nrqls)

    @property
    @pulumi.getter
    def nrqls(self) -> pulumi.Input[Sequence[pulumi.Input['WorkflowEnrichmentsNrqlArgs']]]:
        """
        a wrapper block
        """
        return pulumi.get(self, "nrqls")

    @nrqls.setter
    def nrqls(self, value: pulumi.Input[Sequence[pulumi.Input['WorkflowEnrichmentsNrqlArgs']]]):
        pulumi.set(self, "nrqls", value)


@pulumi.input_type
class WorkflowEnrichmentsNrqlArgs:
    def __init__(__self__, *,
                 configurations: pulumi.Input[Sequence[pulumi.Input['WorkflowEnrichmentsNrqlConfigurationArgs']]],
                 name: pulumi.Input[str],
                 account_id: Optional[pulumi.Input[int]] = None,
                 enrichment_id: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['WorkflowEnrichmentsNrqlConfigurationArgs']]] configurations: Another wrapper block
        :param pulumi.Input[str] name: The name of the workflow.
        :param pulumi.Input[int] account_id: Determines the New Relic account in which the workflow is created. Defaults to the account defined in the provider section.
        :param pulumi.Input[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) -> pulumi.Input[Sequence[pulumi.Input['WorkflowEnrichmentsNrqlConfigurationArgs']]]:
        """
        Another wrapper block
        """
        return pulumi.get(self, "configurations")

    @configurations.setter
    def configurations(self, value: pulumi.Input[Sequence[pulumi.Input['WorkflowEnrichmentsNrqlConfigurationArgs']]]):
        pulumi.set(self, "configurations", value)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of the workflow.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[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")

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

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

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

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[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")

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


@pulumi.input_type
class WorkflowEnrichmentsNrqlConfigurationArgs:
    def __init__(__self__, *,
                 query: pulumi.Input[str]):
        """
        :param pulumi.Input[str] query: An NRQL query to run
        """
        pulumi.set(__self__, "query", query)

    @property
    @pulumi.getter
    def query(self) -> pulumi.Input[str]:
        """
        An NRQL query to run
        """
        return pulumi.get(self, "query")

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


@pulumi.input_type
class WorkflowIssuesFilterArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 type: pulumi.Input[str],
                 filter_id: Optional[pulumi.Input[str]] = None,
                 predicates: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowIssuesFilterPredicateArgs']]]] = None):
        """
        :param pulumi.Input[str] name: The name of the workflow.
        :param pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input['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) -> pulumi.Input[str]:
        """
        The name of the workflow.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def type(self) -> pulumi.Input[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")

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

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

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

    @property
    @pulumi.getter
    def predicates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowIssuesFilterPredicateArgs']]]]:
        """
        A condition an issue event should satisfy to be processed by the workflow
        """
        return pulumi.get(self, "predicates")

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


@pulumi.input_type
class WorkflowIssuesFilterPredicateArgs:
    def __init__(__self__, *,
                 attribute: pulumi.Input[str],
                 operator: pulumi.Input[str],
                 values: pulumi.Input[Sequence[pulumi.Input[str]]]):
        """
        :param pulumi.Input[str] attribute: Issue event attribute to check
        :param pulumi.Input[str] operator: An operator to use to compare the attribute with the provided `values`, see supported operators below
        :param pulumi.Input[Sequence[pulumi.Input[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) -> pulumi.Input[str]:
        """
        Issue event attribute to check
        """
        return pulumi.get(self, "attribute")

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

    @property
    @pulumi.getter
    def operator(self) -> pulumi.Input[str]:
        """
        An operator to use to compare the attribute with the provided `values`, see supported operators below
        """
        return pulumi.get(self, "operator")

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

    @property
    @pulumi.getter
    def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        The `attribute` must match **any** of the values in this list
        """
        return pulumi.get(self, "values")

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


@pulumi.input_type
class GetEntityTagArgs:
    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")

    @key.setter
    def key(self, value: str):
        pulumi.set(self, "key", value)

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

    @value.setter
    def value(self, value: str):
        pulumi.set(self, "value", value)


